2021.07.22 14:15 [2689515] smart account 3P8yE1KVorsZvcw4ZoBACupLKHS7NHT8Gh1 > SELF 0.00000000 Waves

{ "type": 13, "id": "6Hkvkh3KqTXND8Fq13VSxd1Vtv77DvVqqpEVUd2TJ9xX", "fee": 1400000, "feeAssetId": null, "timestamp": 1626952610334, "version": 2, "chainId": 87, "sender": "3P8yE1KVorsZvcw4ZoBACupLKHS7NHT8Gh1", "senderPublicKey": "KhhNHwEfzTSs8NZUMVx8dktYYnK1kerDpeWzgxiMyQ5", "proofs": [ "4qkWn34oeEYLND8XTtSsGcBxDD9JnbZmQiWF5VXF1xEfT5e2qtFnphQeszKSGigbaMYTsLtNE4bAWdfZfUpUT3NU" ], "script": "base64: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ODkEAAAADSRhY2MyNTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIAAAACBQAAAA0kYWNjMTU2NTg1Njg5CQABkQAAAAIFAAAADSRsaXN0NTY1ODU2ODkAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNTY1ODU2ODkAAAAAAAAAAAIFAAAADSRhY2MyNTY1ODU2ODkEAAAADSRhY2MzNTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIAAAACBQAAAA0kYWNjMjU2NTg1Njg5CQABkQAAAAIFAAAADSRsaXN0NTY1ODU2ODkAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNTY1ODU2ODkAAAAAAAAAAAMFAAAADSRhY2MzNTY1ODU2ODkEAAAADSRhY2M0NTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIAAAACBQAAAA0kYWNjMzU2NTg1Njg5CQABkQAAAAIFAAAADSRsaXN0NTY1ODU2ODkAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNTY1ODU2ODkAAAAAAAAAAAQFAAAADSRhY2M0NTY1ODU2ODkEAAAADSRhY2M1NTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIAAAACBQAAAA0kYWNjNDU2NTg1Njg5CQABkQAAAAIFAAAADSRsaXN0NTY1ODU2ODkAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNTY1ODU2ODkAAAAAAAAAAAUFAAAADSRhY2M1NTY1ODU2ODkEAAAADSRhY2M2NTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIAAAACBQAAAA0kYWNjNTU2NTg1Njg5CQABkQAAAAIFAAAADSRsaXN0NTY1ODU2ODkAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNTY1ODU2ODkAAAAAAAAAAAYFAAAADSRhY2M2NTY1ODU2ODkEAAAADSRhY2M3NTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIAAAACBQAAAA0kYWNjNjU2NTg1Njg5CQABkQAAAAIFAAAADSRsaXN0NTY1ODU2ODkAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNTY1ODU2ODkAAAAAAAAAAAcFAAAADSRhY2M3NTY1ODU2ODkEAAAADSRhY2M4NTY1ODU2ODkJAQAAAAlpc1N5bWJvbEIA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DSRsaXN0NTg2NDU4OTUAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAIFAAAADSRhY2MyNTg2NDU4OTUEAAAADSRhY2MzNTg2NDU4OTUJAQAAAAlpc1N5bWJvbEUAAAACBQAAAA0kYWNjMjU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAMFAAAADSRhY2MzNTg2NDU4OTUEAAAADSRhY2M0NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEUAAAACBQAAAA0kYWNjMzU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAQFAAAADSRhY2M0NTg2NDU4OTUEAAAADSRhY2M1NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEUAAAACBQAAAA0kYWNjNDU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAUFAAAADSRhY2M1NTg2NDU4OTUEAAAADSRhY2M2NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEUAAAACBQAAAA0kYWNjNTU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAYFAAAADSRhY2M2NTg2NDU4OTUEAAAADSRhY2M3NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEUAAAACBQAAAA0kYWNjNjU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAcFAAAADSRhY2M3NTg2NDU4OTUEAAAADSRhY2M4NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEUAAAACBQAAAA0kYWNjNzU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAcDCQAAAAAAAAIFAAAA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AAANJHNpemU2MDAyNjAzMwAAAAAAAAAAAAUAAAANJGFjYzA2MDAyNjAzMwQAAAANJGFjYzE2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2MwNjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAAAQUAAAANJGFjYzE2MDAyNjAzMwQAAAANJGFjYzI2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2MxNjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAAAgUAAAANJGFjYzI2MDAyNjAzMwQAAAANJGFjYzM2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2MyNjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAAAwUAAAANJGFjYzM2MDAyNjAzMwQAAAANJGFjYzQ2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2MzNjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAABAUAAAANJGFjYzQ2MDAyNjAzMwQAAAANJGFjYzU2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2M0NjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAABQUAAAANJGFjYzU2MDAyNjAzMwQAAAANJGFjYzY2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2M1NjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAABQMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAABgUAAAANJGFjYzY2MDAyNjAzMwQAAAANJGFjYzc2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2M2NjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAABwUAAAANJGFjYzc2MDAyNjAzMwQAAAANJGFjYzg2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2M3NjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAABwMJAAAAAAAAAgUAAAANJHNpemU2MDAyNjAzMwAAAAAAAAAACAUAAAANJGFjYzg2MDAyNjAzMwQAAAANJGFjYzk2MDAyNjAzMwkBAAAACWlzU3ltYm9sRwAAAAIFAAAADSRhY2M4NjAwMjYwMzMJAAGRAAAAAgUAAAANJGxpc3Q2MDAyNjAzMwAAAAAAAAAACAkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDgCAAAAAUcJAQAAABBnZXRBbW91bnRPckNsZWFyAAAAAQkAASwAAAACCQABpAAAAAEEAAAADSRsaXN0NjA3MDYxMDEFAAAACGdlbm90eXBlBAAAAA0kc2l6ZTYwNzA2MTAxCQABkAAAAAEFAAAADSRsaXN0NjA3MDYxMDEEAAAADSRhY2MwNjA3MDYxMDEAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAAFAAAADSRhY2MwNjA3MDYxMDEEAAAADSRhY2MxNjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjMDYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAEFAAAADSRhY2MxNjA3MDYxMDEEAAAADSRhY2MyNjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjMTYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAIFAAAADSRhY2MyNjA3MDYxMDEEAAAADSRhY2MzNjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjMjYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAMFAAAADSRhY2MzNjA3MDYxMDEEAAAADSRhY2M0NjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjMzYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAQFAAAADSRhY2M0NjA3MDYxMDEEAAAADSRhY2M1NjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjNDYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAUFAAAADSRhY2M1NjA3MDYxMDEEAAAADSRhY2M2NjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjNTYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAYFAAAADSRhY2M2NjA3MDYxMDEEAAAADSRhY2M3NjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjNjYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAcFAAAADSRhY2M3NjA3MDYxMDEEAAAADSRhY2M4NjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjNzYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNjA3MDYxMDEAAAAAAAAAAAgFAAAADSRhY2M4NjA3MDYxMDEEAAAADSRhY2M5NjA3MDYxMDEJAQAAAAlpc1N5bWJvbEgAAAACBQAAAA0kYWNjODYwNzA2MTAxCQABkQAAAAIFAAAADSRsaXN0NjA3MDYxMDEAAAAAAAAAAAgJAAACAAAAAQIAAAASTGlzdCBzaXplIGV4Y2VlZCA4AgAAAAFIAgAAAAEtBQAAAApnZW5lcmF0aW9uAAAAAwAAAAFpAQAAABFzdGFydER1Y2tCcmVlZGluZwAAAAAEAAAADGZpcnN0QXNzZXRJZAkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAA1zZWNvbmRBc3NldElkCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEDCQEAAAAVY2hlY2tBc3NldEluSW5jdWJhdG9yAAAAAQUAAAAMZmlyc3RBc3NldElkCQEAAAAVY2hlY2tBc3NldEluSW5jdWJhdG9yAAAAAQUAAAANc2Vjb25kQXNzZXRJZAcJAAACAAAAAQIAAAAlWW91IG5lZWQgdG8gYXR0YWNoIDIgdmFsaWQgTkZULWR1Y2tzLgMDCQAAZgAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAMZmlyc3RBc3NldElkAgAAAAlfY2hpbGRyZW4AAAAAAAAAAAAGCQAAZgAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAANc2Vjb25kQXNzZXRJZAIAAAAJX2NoaWxkcmVuAAAAAAAAAAAACQAAAgAAAAECAAAAPE9uZSBkdWNrIGNhbiBiZSB1c2VkIGZvciBicmVlZGluZyBvbmx5IG9uY2UgaW4gaXRzIGxpZmV0aW1lLgQAAAANYnJlZWRlZFN0YXR1cwkBAAAADGNhbkJlQnJlZWRlZAAAAAIJAAJZAAAAAQUAAAAMZmlyc3RBc3NldElkCQACWQAAAAEFAAAADXNlY29uZEFzc2V0SWQDCQEAAAACIT0AAAACBQAAAA1icmVlZGVkU3RhdHVzAgAAAAR0cnVlCQAAAgAAAAEJAAEsAAAAAgIAAAAfVGhlc2UgZHVja3MgY2Fubm90IGJlIGJyZWVkZWQ6IAUAAAANYnJlZWRlZFN0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQZ2V0RHVja1BhcmVudEtleQAAAAIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQAAAAAAAAAAAEFAAAADGZpcnN0QXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQZ2V0RHVja1BhcmVudEtleQAAAAIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQAAAAAAAAAAAIFAAAADXNlY29uZEFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2dldFByb2Nlc3NTdGF0dXNLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAAPSGF0Y2hpbmdTdGFydGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAZZ2V0UHJvY2Vzc0ZpbmlzaEhlaWdodEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAQZGVsYXlGb3JIYXRjaGluZwUAAAADbmlsAAAAAWkBAAAAEmZpbmlzaER1Y2tIYXRjaGluZwAAAAEAAAAHdHhJZFN0cgQAAAAEdHhJZAkAAlkAAAABBQAAAAd0eElkU3RyBAAAABBwcm9jZXNzU3RhdHVzS2V5CQEAAAATZ2V0UHJvY2Vzc1N0YXR1c0tleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAA9maW5pc2hIZWlnaHRLZXkJAQAAABlnZXRQcm9jZXNzRmluaXNoSGVpZ2h0S2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQEAAAACWR1Y2tJZEtleQkBAAAADGdldER1Y2tJZEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkBAAAAA9wcm9jZXNzVHhTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAEHByb2Nlc3NTdGF0dXNLZXkEAAAAE3Byb2Nlc3NGaW5pc2hIZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMFAAAAD2ZpbmlzaEhlaWdodEtleQMJAAAAAAAAAgUAAAAPcHJvY2Vzc1R4U3RhdHVzBQAAABBIYXRjaGluZ0ZpbmlzaGVkBAAAAAZkdWNrSWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAQAAAAxnZXREdWNrSWRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAkAAAIAAAABCQABLAAAAAICAAAAQFRoZSBkdWNrIHdhcyBicmVlZGVkIGFuZCBjbGFpbWVkIGFscmVhZHksIGhlcmUgaXMgdGhlIGZvbG93aW5nOiAFAAAABmR1Y2tJZAMJAABmAAAAAgUAAAATcHJvY2Vzc0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAdQnJlZWRpbmcgaXMgbm90IGZpbmlzaGVkIHlldCAJAAGkAAAAAQkAAGUAAAACBQAAABNwcm9jZXNzRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQCAAAAJyBibG9ja3MgcmVtYWluaW5nLCBpdCB3aWxsIHRha2UgYXJvdW5kIAkAAaQAAAABCQAAZQAAAAIFAAAAE3Byb2Nlc3NGaW5pc2hIZWlnaHQFAAAABmhlaWdodAIAAAAIIG1pbnV0ZXMEAAAAB2R1Y2tHZW4JAQAAAAxnZW5lcmF0ZUR1Y2sAAAACBQAAAAR0eElkBQAAABNwcm9jZXNzRmluaXNoSGVpZ2h0BAAAAAdmYXJtR2VuCQEAAAAGZ2V0R2VuAAAAAQUAAAAHZHVja0dlbgQAAAALZGVzY3JpcHRpb24JAAEsAAAAAgkAASwAAAACAgAAAA57Imdlbm90eXBlIjogIgUAAAAHZHVja0dlbgIAAAAZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQAAAAFYXNzZXQJAARDAAAABwUAAAAHZHVja0dlbgUAAAALZGVzY3JpcHRpb24AAAAAAAAAAAEAAAAAAAAAAAAHBQAAAAR1bml0BQAAABNwcm9jZXNzRmluaXNoSGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAZhbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0RHVja1N0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgAAAAAAAAAAAQQAAAAKcXVhbnRpdGllcwkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGc3RhdHNfBQAAAAdmYXJtR2VuAgAAAAlfcXVhbnRpdHkEAAAACXBhcmVudDFJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXREdWNrUGFyZW50S2V5AAAAAgUAAAAEdHhJZAAAAAAAAAAAAQQAAAAJcGFyZW50MklkCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAEGdldER1Y2tQYXJlbnRLZXkAAAACBQAAAAR0eElkAAAAAAAAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEHByb2Nlc3NTdGF0dXNLZXkFAAAAEEhhdGNoaW5nRmluaXNoZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAJZHVja0lkS2V5CQACWAAAAAEFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAAlgAAAABBQAAAAdhc3NldElkBQAAAAlkdWNrSWRLZXkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9nZXREdWNrU3RhdHNLZXkAAAABBQAAAAdkdWNrR2VuBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZzdGF0c18FAAAAB2Zhcm1HZW4CAAAACV9xdWFudGl0eQkAAGQAAAACBQAAAApxdWFudGl0aWVzAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGYXNzZXRfBQAAAAlwYXJlbnQxSWQCAAAACV9jaGlsZHJlbgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAJcGFyZW50MklkAgAAAAlfY2hpbGRyZW4AAAAAAAAAAAEJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAAQkAAlkAAAABBQAAAAlwYXJlbnQxSWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAACXBhcmVudDJJZAUAAAADbmlsAAAAAWkBAAAADHJlZHVjZVJhcml0eQAAAAEAAAAHYXNzZXRJZAQAAAAFYXNzZXQJAAJZAAAAAQUAAAAHYXNzZXRJZAMDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAAAdBZGRyZXNzAAAAAQUAAAAOcmViaXJ0aEFkZHJlc3MJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwcJAAACAAAAAQIAAAAVYWRtaW4gb3IgcmViaXJ0aCBvbmx5BAAAAAdkdWNrR2VuCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAVhc3NldAAAAARuYW1lBAAAAAdmYXJtR2VuCQEAAAAGZ2V0R2VuAAAAAQUAAAAHZHVja0dlbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2dldER1Y2tTdGF0c0tleQAAAAEFAAAAB2R1Y2tHZW4JAABlAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0RHVja1N0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5CQAAZQAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAICAAAABnN0YXRzXwUAAAAHZmFybUdlbgIAAAAJX3F1YW50aXR5AAAAAAAAAAABBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleSuuNas=", "height": 2689515, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GqHwKVHfmbgvUcagrjYkMwodbNpoPpSEsw8KeKtgRa3r Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let delayForHatching = 2
4+let delayForHatching = 0
55
66 let HatchingStarted = "BREEDING_STARTED"
77
88 let HatchingFinished = "BREEDING_FINISHED"
99
10-let incubatorAddress = base58'3PACKMArmh4BAEawStYmpcU62aiNTBJKvNh'
10+let incubatorAddress = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM'
1111
12-let MaxGeneration = 2
12+let GENS = ["A", "B", "C", "D", "E", "F", "G"]
1313
14-let Generations = ["G", "H", "I", "K", "L", "M"]
14+let MaxGeneration = 4
15+
16+let Generations = ["G", "H", "I", "K", "L", "M", "N"]
17+
18+let rebirthAddress = base58'3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba'
1519
1620 func getProcessStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
1721
5862
5963 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
6064 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
61- let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
65+ let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf)))
6266 (toInt(randomHash, offset) % variants)
6367 }
6468
120124 }
121125
122126
127+func isSymbolA (accumulated,sym) = if ((sym == "A"))
128+ then (accumulated + 1)
129+ else (accumulated + 0)
130+
131+
132+func isSymbolB (accumulated,sym) = if ((sym == "B"))
133+ then (accumulated + 1)
134+ else (accumulated + 0)
135+
136+
137+func isSymbolC (accumulated,sym) = if ((sym == "C"))
138+ then (accumulated + 1)
139+ else (accumulated + 0)
140+
141+
142+func isSymbolD (accumulated,sym) = if ((sym == "D"))
143+ then (accumulated + 1)
144+ else (accumulated + 0)
145+
146+
147+func isSymbolE (accumulated,sym) = if ((sym == "E"))
148+ then (accumulated + 1)
149+ else (accumulated + 0)
150+
151+
152+func isSymbolF (accumulated,sym) = if ((sym == "F"))
153+ then (accumulated + 1)
154+ else (accumulated + 0)
155+
156+
157+func isSymbolG (accumulated,sym) = if ((sym == "G"))
158+ then (accumulated + 1)
159+ else (accumulated + 0)
160+
161+
162+func isSymbolH (accumulated,sym) = if ((sym == "H"))
163+ then (accumulated + 1)
164+ else (accumulated + 0)
165+
166+
167+func getAmountOrClear (amount) = if (contains(amount, "0"))
168+ then ""
169+ else amount
170+
171+
172+func getGen (assetName) = {
173+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
174+ let generation = split(assetName, "")[14]
175+ (((((((((getAmountOrClear((toString({
176+ let $list55905621 = genotype
177+ let $size55905621 = size($list55905621)
178+ let $acc055905621 = 0
179+ if (($size55905621 == 0))
180+ then $acc055905621
181+ else {
182+ let $acc155905621 = isSymbolA($acc055905621, $list55905621[0])
183+ if (($size55905621 == 1))
184+ then $acc155905621
185+ else {
186+ let $acc255905621 = isSymbolA($acc155905621, $list55905621[1])
187+ if (($size55905621 == 2))
188+ then $acc255905621
189+ else {
190+ let $acc355905621 = isSymbolA($acc255905621, $list55905621[2])
191+ if (($size55905621 == 3))
192+ then $acc355905621
193+ else {
194+ let $acc455905621 = isSymbolA($acc355905621, $list55905621[3])
195+ if (($size55905621 == 4))
196+ then $acc455905621
197+ else {
198+ let $acc555905621 = isSymbolA($acc455905621, $list55905621[4])
199+ if (($size55905621 == 5))
200+ then $acc555905621
201+ else {
202+ let $acc655905621 = isSymbolA($acc555905621, $list55905621[5])
203+ if (($size55905621 == 6))
204+ then $acc655905621
205+ else {
206+ let $acc755905621 = isSymbolA($acc655905621, $list55905621[6])
207+ if (($size55905621 == 7))
208+ then $acc755905621
209+ else {
210+ let $acc855905621 = isSymbolA($acc755905621, $list55905621[7])
211+ if (($size55905621 == 8))
212+ then $acc855905621
213+ else {
214+ let $acc955905621 = isSymbolA($acc855905621, $list55905621[8])
215+ throw("List size exceed 8")
216+ }
217+ }
218+ }
219+ }
220+ }
221+ }
222+ }
223+ }
224+ }
225+ }) + "A")) + getAmountOrClear((toString({
226+ let $list56585689 = genotype
227+ let $size56585689 = size($list56585689)
228+ let $acc056585689 = 0
229+ if (($size56585689 == 0))
230+ then $acc056585689
231+ else {
232+ let $acc156585689 = isSymbolB($acc056585689, $list56585689[0])
233+ if (($size56585689 == 1))
234+ then $acc156585689
235+ else {
236+ let $acc256585689 = isSymbolB($acc156585689, $list56585689[1])
237+ if (($size56585689 == 2))
238+ then $acc256585689
239+ else {
240+ let $acc356585689 = isSymbolB($acc256585689, $list56585689[2])
241+ if (($size56585689 == 3))
242+ then $acc356585689
243+ else {
244+ let $acc456585689 = isSymbolB($acc356585689, $list56585689[3])
245+ if (($size56585689 == 4))
246+ then $acc456585689
247+ else {
248+ let $acc556585689 = isSymbolB($acc456585689, $list56585689[4])
249+ if (($size56585689 == 5))
250+ then $acc556585689
251+ else {
252+ let $acc656585689 = isSymbolB($acc556585689, $list56585689[5])
253+ if (($size56585689 == 6))
254+ then $acc656585689
255+ else {
256+ let $acc756585689 = isSymbolB($acc656585689, $list56585689[6])
257+ if (($size56585689 == 7))
258+ then $acc756585689
259+ else {
260+ let $acc856585689 = isSymbolB($acc756585689, $list56585689[7])
261+ if (($size56585689 == 8))
262+ then $acc856585689
263+ else {
264+ let $acc956585689 = isSymbolB($acc856585689, $list56585689[8])
265+ throw("List size exceed 8")
266+ }
267+ }
268+ }
269+ }
270+ }
271+ }
272+ }
273+ }
274+ }
275+ }) + "B"))) + getAmountOrClear((toString({
276+ let $list57265757 = genotype
277+ let $size57265757 = size($list57265757)
278+ let $acc057265757 = 0
279+ if (($size57265757 == 0))
280+ then $acc057265757
281+ else {
282+ let $acc157265757 = isSymbolC($acc057265757, $list57265757[0])
283+ if (($size57265757 == 1))
284+ then $acc157265757
285+ else {
286+ let $acc257265757 = isSymbolC($acc157265757, $list57265757[1])
287+ if (($size57265757 == 2))
288+ then $acc257265757
289+ else {
290+ let $acc357265757 = isSymbolC($acc257265757, $list57265757[2])
291+ if (($size57265757 == 3))
292+ then $acc357265757
293+ else {
294+ let $acc457265757 = isSymbolC($acc357265757, $list57265757[3])
295+ if (($size57265757 == 4))
296+ then $acc457265757
297+ else {
298+ let $acc557265757 = isSymbolC($acc457265757, $list57265757[4])
299+ if (($size57265757 == 5))
300+ then $acc557265757
301+ else {
302+ let $acc657265757 = isSymbolC($acc557265757, $list57265757[5])
303+ if (($size57265757 == 6))
304+ then $acc657265757
305+ else {
306+ let $acc757265757 = isSymbolC($acc657265757, $list57265757[6])
307+ if (($size57265757 == 7))
308+ then $acc757265757
309+ else {
310+ let $acc857265757 = isSymbolC($acc757265757, $list57265757[7])
311+ if (($size57265757 == 8))
312+ then $acc857265757
313+ else {
314+ let $acc957265757 = isSymbolC($acc857265757, $list57265757[8])
315+ throw("List size exceed 8")
316+ }
317+ }
318+ }
319+ }
320+ }
321+ }
322+ }
323+ }
324+ }
325+ }) + "C"))) + getAmountOrClear((toString({
326+ let $list57965827 = genotype
327+ let $size57965827 = size($list57965827)
328+ let $acc057965827 = 0
329+ if (($size57965827 == 0))
330+ then $acc057965827
331+ else {
332+ let $acc157965827 = isSymbolD($acc057965827, $list57965827[0])
333+ if (($size57965827 == 1))
334+ then $acc157965827
335+ else {
336+ let $acc257965827 = isSymbolD($acc157965827, $list57965827[1])
337+ if (($size57965827 == 2))
338+ then $acc257965827
339+ else {
340+ let $acc357965827 = isSymbolD($acc257965827, $list57965827[2])
341+ if (($size57965827 == 3))
342+ then $acc357965827
343+ else {
344+ let $acc457965827 = isSymbolD($acc357965827, $list57965827[3])
345+ if (($size57965827 == 4))
346+ then $acc457965827
347+ else {
348+ let $acc557965827 = isSymbolD($acc457965827, $list57965827[4])
349+ if (($size57965827 == 5))
350+ then $acc557965827
351+ else {
352+ let $acc657965827 = isSymbolD($acc557965827, $list57965827[5])
353+ if (($size57965827 == 6))
354+ then $acc657965827
355+ else {
356+ let $acc757965827 = isSymbolD($acc657965827, $list57965827[6])
357+ if (($size57965827 == 7))
358+ then $acc757965827
359+ else {
360+ let $acc857965827 = isSymbolD($acc757965827, $list57965827[7])
361+ if (($size57965827 == 8))
362+ then $acc857965827
363+ else {
364+ let $acc957965827 = isSymbolD($acc857965827, $list57965827[8])
365+ throw("List size exceed 8")
366+ }
367+ }
368+ }
369+ }
370+ }
371+ }
372+ }
373+ }
374+ }
375+ }) + "D"))) + getAmountOrClear((toString({
376+ let $list58645895 = genotype
377+ let $size58645895 = size($list58645895)
378+ let $acc058645895 = 0
379+ if (($size58645895 == 0))
380+ then $acc058645895
381+ else {
382+ let $acc158645895 = isSymbolE($acc058645895, $list58645895[0])
383+ if (($size58645895 == 1))
384+ then $acc158645895
385+ else {
386+ let $acc258645895 = isSymbolE($acc158645895, $list58645895[1])
387+ if (($size58645895 == 2))
388+ then $acc258645895
389+ else {
390+ let $acc358645895 = isSymbolE($acc258645895, $list58645895[2])
391+ if (($size58645895 == 3))
392+ then $acc358645895
393+ else {
394+ let $acc458645895 = isSymbolE($acc358645895, $list58645895[3])
395+ if (($size58645895 == 4))
396+ then $acc458645895
397+ else {
398+ let $acc558645895 = isSymbolE($acc458645895, $list58645895[4])
399+ if (($size58645895 == 5))
400+ then $acc558645895
401+ else {
402+ let $acc658645895 = isSymbolE($acc558645895, $list58645895[5])
403+ if (($size58645895 == 6))
404+ then $acc658645895
405+ else {
406+ let $acc758645895 = isSymbolE($acc658645895, $list58645895[6])
407+ if (($size58645895 == 7))
408+ then $acc758645895
409+ else {
410+ let $acc858645895 = isSymbolE($acc758645895, $list58645895[7])
411+ if (($size58645895 == 8))
412+ then $acc858645895
413+ else {
414+ let $acc958645895 = isSymbolE($acc858645895, $list58645895[8])
415+ throw("List size exceed 8")
416+ }
417+ }
418+ }
419+ }
420+ }
421+ }
422+ }
423+ }
424+ }
425+ }) + "E"))) + getAmountOrClear((toString({
426+ let $list59325963 = genotype
427+ let $size59325963 = size($list59325963)
428+ let $acc059325963 = 0
429+ if (($size59325963 == 0))
430+ then $acc059325963
431+ else {
432+ let $acc159325963 = isSymbolF($acc059325963, $list59325963[0])
433+ if (($size59325963 == 1))
434+ then $acc159325963
435+ else {
436+ let $acc259325963 = isSymbolF($acc159325963, $list59325963[1])
437+ if (($size59325963 == 2))
438+ then $acc259325963
439+ else {
440+ let $acc359325963 = isSymbolF($acc259325963, $list59325963[2])
441+ if (($size59325963 == 3))
442+ then $acc359325963
443+ else {
444+ let $acc459325963 = isSymbolF($acc359325963, $list59325963[3])
445+ if (($size59325963 == 4))
446+ then $acc459325963
447+ else {
448+ let $acc559325963 = isSymbolF($acc459325963, $list59325963[4])
449+ if (($size59325963 == 5))
450+ then $acc559325963
451+ else {
452+ let $acc659325963 = isSymbolF($acc559325963, $list59325963[5])
453+ if (($size59325963 == 6))
454+ then $acc659325963
455+ else {
456+ let $acc759325963 = isSymbolF($acc659325963, $list59325963[6])
457+ if (($size59325963 == 7))
458+ then $acc759325963
459+ else {
460+ let $acc859325963 = isSymbolF($acc759325963, $list59325963[7])
461+ if (($size59325963 == 8))
462+ then $acc859325963
463+ else {
464+ let $acc959325963 = isSymbolF($acc859325963, $list59325963[8])
465+ throw("List size exceed 8")
466+ }
467+ }
468+ }
469+ }
470+ }
471+ }
472+ }
473+ }
474+ }
475+ }) + "F"))) + getAmountOrClear((toString({
476+ let $list60026033 = genotype
477+ let $size60026033 = size($list60026033)
478+ let $acc060026033 = 0
479+ if (($size60026033 == 0))
480+ then $acc060026033
481+ else {
482+ let $acc160026033 = isSymbolG($acc060026033, $list60026033[0])
483+ if (($size60026033 == 1))
484+ then $acc160026033
485+ else {
486+ let $acc260026033 = isSymbolG($acc160026033, $list60026033[1])
487+ if (($size60026033 == 2))
488+ then $acc260026033
489+ else {
490+ let $acc360026033 = isSymbolG($acc260026033, $list60026033[2])
491+ if (($size60026033 == 3))
492+ then $acc360026033
493+ else {
494+ let $acc460026033 = isSymbolG($acc360026033, $list60026033[3])
495+ if (($size60026033 == 4))
496+ then $acc460026033
497+ else {
498+ let $acc560026033 = isSymbolG($acc460026033, $list60026033[4])
499+ if (($size60026033 == 5))
500+ then $acc560026033
501+ else {
502+ let $acc660026033 = isSymbolG($acc560026033, $list60026033[5])
503+ if (($size60026033 == 6))
504+ then $acc660026033
505+ else {
506+ let $acc760026033 = isSymbolG($acc660026033, $list60026033[6])
507+ if (($size60026033 == 7))
508+ then $acc760026033
509+ else {
510+ let $acc860026033 = isSymbolG($acc760026033, $list60026033[7])
511+ if (($size60026033 == 8))
512+ then $acc860026033
513+ else {
514+ let $acc960026033 = isSymbolG($acc860026033, $list60026033[8])
515+ throw("List size exceed 8")
516+ }
517+ }
518+ }
519+ }
520+ }
521+ }
522+ }
523+ }
524+ }
525+ }) + "G"))) + getAmountOrClear((toString({
526+ let $list60706101 = genotype
527+ let $size60706101 = size($list60706101)
528+ let $acc060706101 = 0
529+ if (($size60706101 == 0))
530+ then $acc060706101
531+ else {
532+ let $acc160706101 = isSymbolH($acc060706101, $list60706101[0])
533+ if (($size60706101 == 1))
534+ then $acc160706101
535+ else {
536+ let $acc260706101 = isSymbolH($acc160706101, $list60706101[1])
537+ if (($size60706101 == 2))
538+ then $acc260706101
539+ else {
540+ let $acc360706101 = isSymbolH($acc260706101, $list60706101[2])
541+ if (($size60706101 == 3))
542+ then $acc360706101
543+ else {
544+ let $acc460706101 = isSymbolH($acc360706101, $list60706101[3])
545+ if (($size60706101 == 4))
546+ then $acc460706101
547+ else {
548+ let $acc560706101 = isSymbolH($acc460706101, $list60706101[4])
549+ if (($size60706101 == 5))
550+ then $acc560706101
551+ else {
552+ let $acc660706101 = isSymbolH($acc560706101, $list60706101[5])
553+ if (($size60706101 == 6))
554+ then $acc660706101
555+ else {
556+ let $acc760706101 = isSymbolH($acc660706101, $list60706101[6])
557+ if (($size60706101 == 7))
558+ then $acc760706101
559+ else {
560+ let $acc860706101 = isSymbolH($acc760706101, $list60706101[7])
561+ if (($size60706101 == 8))
562+ then $acc860706101
563+ else {
564+ let $acc960706101 = isSymbolH($acc860706101, $list60706101[8])
565+ throw("List size exceed 8")
566+ }
567+ }
568+ }
569+ }
570+ }
571+ }
572+ }
573+ }
574+ }
575+ }) + "H"))) + "-") + generation)
576+ }
577+
578+
123579 @Callable(i)
124580 func startDuckBreeding () = {
125581 let firstAssetId = toBase58String(value(value(i.payments[0]).assetId))
159615 then throw((((("Breeding is not finished yet " + toString((processFinishHeight - height))) + " blocks remaining, it will take around ") + toString((processFinishHeight - height))) + " minutes"))
160616 else {
161617 let duckGen = generateDuck(txId, processFinishHeight)
618+ let farmGen = getGen(duckGen)
162619 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
163620 let asset = Issue(duckGen, description, 1, 0, false, unit, processFinishHeight)
164621 let assetId = calculateAssetId(asset)
165622 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
623+ let quantities = tryGetInteger((("stats_" + farmGen) + "_quantity"))
166624 let parent1Id = tryGetString(getDuckParentKey(txId, 1))
167625 let parent2Id = tryGetString(getDuckParentKey(txId, 2))
168-[StringEntry(processStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("asset_" + parent1Id) + "_children"), 1), IntegerEntry((("asset_" + parent2Id) + "_children"), 1), asset, ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, 1, fromBase58String(parent1Id)), ScriptTransfer(i.caller, 1, fromBase58String(parent2Id))]
626+[StringEntry(processStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (quantities + 1)), IntegerEntry((("asset_" + parent1Id) + "_children"), 1), IntegerEntry((("asset_" + parent2Id) + "_children"), 1), asset, ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, 1, fromBase58String(parent1Id)), ScriptTransfer(i.caller, 1, fromBase58String(parent2Id))]
169627 }
628+ }
629+
630+
631+
632+@Callable(i)
633+func reduceRarity (assetId) = {
634+ let asset = fromBase58String(assetId)
635+ if (if ((i.caller != Address(rebirthAddress)))
636+ then (i.caller != this)
637+ else false)
638+ then throw("admin or rebirth only")
639+ else {
640+ let duckGen = value(assetInfo(asset)).name
641+ let farmGen = getGen(duckGen)
642+[IntegerEntry(getDuckStatsKey(duckGen), (tryGetInteger(getDuckStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
643+ }
170644 }
171645
172646
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let delayForHatching = 2
4+let delayForHatching = 0
55
66 let HatchingStarted = "BREEDING_STARTED"
77
88 let HatchingFinished = "BREEDING_FINISHED"
99
10-let incubatorAddress = base58'3PACKMArmh4BAEawStYmpcU62aiNTBJKvNh'
10+let incubatorAddress = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM'
1111
12-let MaxGeneration = 2
12+let GENS = ["A", "B", "C", "D", "E", "F", "G"]
1313
14-let Generations = ["G", "H", "I", "K", "L", "M"]
14+let MaxGeneration = 4
15+
16+let Generations = ["G", "H", "I", "K", "L", "M", "N"]
17+
18+let rebirthAddress = base58'3PKL9tfUmNciXvbSA3zpXr6PnDNnhn936ba'
1519
1620 func getProcessStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
1721
1822
1923 func getProcessFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
2024
2125
2226 func getDuckParentKey (txId,parentNum) = ((("inittx_" + toBase58String(txId)) + "_parent") + toString(parentNum))
2327
2428
2529 func getDuckIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
2630
2731
2832 func getDuckStatsKey (genString) = (("stats_" + genString) + "_amount")
2933
3034
3135 func tryGetInteger (key) = {
3236 let val = match getInteger(this, key) {
3337 case b: Int =>
3438 b
3539 case _ =>
3640 0
3741 }
3842 val
3943 }
4044
4145
4246 func tryGetString (key) = {
4347 let val = match getString(this, key) {
4448 case b: String =>
4549 b
4650 case _ =>
4751 ""
4852 }
4953 val
5054 }
5155
5256
5357 func determineGeneration (g1,g2) = {
5458 let gIndex = max([value(indexOf(Generations, g1)), value(indexOf(Generations, g2))])
5559 Generations[(gIndex + 1)]
5660 }
5761
5862
5963 func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
6064 let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
61- let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
65+ let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf)))
6266 (toInt(randomHash, offset) % variants)
6367 }
6468
6569
6670 func getRandomGen (gen1,gen2,step,txId,hatchingFinishHeight) = {
6771 let randomNum = getRandomNumber(2, txId, hatchingFinishHeight, step)
6872 let gen = if ((randomNum == 0))
6973 then gen1
7074 else gen2
7175 gen
7276 }
7377
7478
7579 func generateDuck (txId,hatchingFinishHeight) = {
7680 let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 11)
7781 let color = if ((colorRandom == 0))
7882 then "Y"
7983 else if ((colorRandom == 1))
8084 then "G"
8185 else if ((colorRandom == 2))
8286 then "B"
8387 else "R"
8488 let parent1Id = fromBase58String(tryGetString(getDuckParentKey(txId, 1)))
8589 let parent2Id = fromBase58String(tryGetString(getDuckParentKey(txId, 2)))
8690 let parent1Gen = split(value(assetInfo(parent1Id)).name, "")
8791 let parent2Gen = split(value(assetInfo(parent2Id)).name, "")
8892 let gen = ((((((((((("DUCK-" + getRandomGen(parent1Gen[5], parent2Gen[5], 0, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[6], parent2Gen[6], 1, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[7], parent2Gen[7], 2, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[8], parent2Gen[8], 3, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[9], parent2Gen[9], 4, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[10], parent2Gen[10], 5, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[11], parent2Gen[12], 6, txId, hatchingFinishHeight)) + getRandomGen(parent1Gen[12], parent2Gen[12], 7, txId, hatchingFinishHeight)) + "-") + determineGeneration(parent1Gen[14], parent2Gen[14])) + color)
8993 gen
9094 }
9195
9296
9397 func checkAssetInIncubator (assetId) = {
9498 let result = match getString(Address(incubatorAddress), assetId) {
9599 case b: String =>
96100 true
97101 case _ =>
98102 false
99103 }
100104 let result2 = match getString(this, assetId) {
101105 case c: String =>
102106 true
103107 case _ =>
104108 false
105109 }
106110 if (result)
107111 then true
108112 else result2
109113 }
110114
111115
112116 func canBeBreeded (asset1Id,asset2Id) = {
113117 let asset1Gen = split(value(assetInfo(asset1Id)).name, "")
114118 let asset2Gen = split(value(assetInfo(asset2Id)).name, "")
115119 if ((value(indexOf(Generations, asset1Gen[14])) >= MaxGeneration))
116120 then (("you can only breed ducks with generation " + Generations[MaxGeneration]) + " and lower")
117121 else if ((value(indexOf(Generations, asset2Gen[14])) >= MaxGeneration))
118122 then (("you can only breed ducks with generation " + Generations[MaxGeneration]) + " and lower")
119123 else "true"
120124 }
121125
122126
127+func isSymbolA (accumulated,sym) = if ((sym == "A"))
128+ then (accumulated + 1)
129+ else (accumulated + 0)
130+
131+
132+func isSymbolB (accumulated,sym) = if ((sym == "B"))
133+ then (accumulated + 1)
134+ else (accumulated + 0)
135+
136+
137+func isSymbolC (accumulated,sym) = if ((sym == "C"))
138+ then (accumulated + 1)
139+ else (accumulated + 0)
140+
141+
142+func isSymbolD (accumulated,sym) = if ((sym == "D"))
143+ then (accumulated + 1)
144+ else (accumulated + 0)
145+
146+
147+func isSymbolE (accumulated,sym) = if ((sym == "E"))
148+ then (accumulated + 1)
149+ else (accumulated + 0)
150+
151+
152+func isSymbolF (accumulated,sym) = if ((sym == "F"))
153+ then (accumulated + 1)
154+ else (accumulated + 0)
155+
156+
157+func isSymbolG (accumulated,sym) = if ((sym == "G"))
158+ then (accumulated + 1)
159+ else (accumulated + 0)
160+
161+
162+func isSymbolH (accumulated,sym) = if ((sym == "H"))
163+ then (accumulated + 1)
164+ else (accumulated + 0)
165+
166+
167+func getAmountOrClear (amount) = if (contains(amount, "0"))
168+ then ""
169+ else amount
170+
171+
172+func getGen (assetName) = {
173+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
174+ let generation = split(assetName, "")[14]
175+ (((((((((getAmountOrClear((toString({
176+ let $list55905621 = genotype
177+ let $size55905621 = size($list55905621)
178+ let $acc055905621 = 0
179+ if (($size55905621 == 0))
180+ then $acc055905621
181+ else {
182+ let $acc155905621 = isSymbolA($acc055905621, $list55905621[0])
183+ if (($size55905621 == 1))
184+ then $acc155905621
185+ else {
186+ let $acc255905621 = isSymbolA($acc155905621, $list55905621[1])
187+ if (($size55905621 == 2))
188+ then $acc255905621
189+ else {
190+ let $acc355905621 = isSymbolA($acc255905621, $list55905621[2])
191+ if (($size55905621 == 3))
192+ then $acc355905621
193+ else {
194+ let $acc455905621 = isSymbolA($acc355905621, $list55905621[3])
195+ if (($size55905621 == 4))
196+ then $acc455905621
197+ else {
198+ let $acc555905621 = isSymbolA($acc455905621, $list55905621[4])
199+ if (($size55905621 == 5))
200+ then $acc555905621
201+ else {
202+ let $acc655905621 = isSymbolA($acc555905621, $list55905621[5])
203+ if (($size55905621 == 6))
204+ then $acc655905621
205+ else {
206+ let $acc755905621 = isSymbolA($acc655905621, $list55905621[6])
207+ if (($size55905621 == 7))
208+ then $acc755905621
209+ else {
210+ let $acc855905621 = isSymbolA($acc755905621, $list55905621[7])
211+ if (($size55905621 == 8))
212+ then $acc855905621
213+ else {
214+ let $acc955905621 = isSymbolA($acc855905621, $list55905621[8])
215+ throw("List size exceed 8")
216+ }
217+ }
218+ }
219+ }
220+ }
221+ }
222+ }
223+ }
224+ }
225+ }) + "A")) + getAmountOrClear((toString({
226+ let $list56585689 = genotype
227+ let $size56585689 = size($list56585689)
228+ let $acc056585689 = 0
229+ if (($size56585689 == 0))
230+ then $acc056585689
231+ else {
232+ let $acc156585689 = isSymbolB($acc056585689, $list56585689[0])
233+ if (($size56585689 == 1))
234+ then $acc156585689
235+ else {
236+ let $acc256585689 = isSymbolB($acc156585689, $list56585689[1])
237+ if (($size56585689 == 2))
238+ then $acc256585689
239+ else {
240+ let $acc356585689 = isSymbolB($acc256585689, $list56585689[2])
241+ if (($size56585689 == 3))
242+ then $acc356585689
243+ else {
244+ let $acc456585689 = isSymbolB($acc356585689, $list56585689[3])
245+ if (($size56585689 == 4))
246+ then $acc456585689
247+ else {
248+ let $acc556585689 = isSymbolB($acc456585689, $list56585689[4])
249+ if (($size56585689 == 5))
250+ then $acc556585689
251+ else {
252+ let $acc656585689 = isSymbolB($acc556585689, $list56585689[5])
253+ if (($size56585689 == 6))
254+ then $acc656585689
255+ else {
256+ let $acc756585689 = isSymbolB($acc656585689, $list56585689[6])
257+ if (($size56585689 == 7))
258+ then $acc756585689
259+ else {
260+ let $acc856585689 = isSymbolB($acc756585689, $list56585689[7])
261+ if (($size56585689 == 8))
262+ then $acc856585689
263+ else {
264+ let $acc956585689 = isSymbolB($acc856585689, $list56585689[8])
265+ throw("List size exceed 8")
266+ }
267+ }
268+ }
269+ }
270+ }
271+ }
272+ }
273+ }
274+ }
275+ }) + "B"))) + getAmountOrClear((toString({
276+ let $list57265757 = genotype
277+ let $size57265757 = size($list57265757)
278+ let $acc057265757 = 0
279+ if (($size57265757 == 0))
280+ then $acc057265757
281+ else {
282+ let $acc157265757 = isSymbolC($acc057265757, $list57265757[0])
283+ if (($size57265757 == 1))
284+ then $acc157265757
285+ else {
286+ let $acc257265757 = isSymbolC($acc157265757, $list57265757[1])
287+ if (($size57265757 == 2))
288+ then $acc257265757
289+ else {
290+ let $acc357265757 = isSymbolC($acc257265757, $list57265757[2])
291+ if (($size57265757 == 3))
292+ then $acc357265757
293+ else {
294+ let $acc457265757 = isSymbolC($acc357265757, $list57265757[3])
295+ if (($size57265757 == 4))
296+ then $acc457265757
297+ else {
298+ let $acc557265757 = isSymbolC($acc457265757, $list57265757[4])
299+ if (($size57265757 == 5))
300+ then $acc557265757
301+ else {
302+ let $acc657265757 = isSymbolC($acc557265757, $list57265757[5])
303+ if (($size57265757 == 6))
304+ then $acc657265757
305+ else {
306+ let $acc757265757 = isSymbolC($acc657265757, $list57265757[6])
307+ if (($size57265757 == 7))
308+ then $acc757265757
309+ else {
310+ let $acc857265757 = isSymbolC($acc757265757, $list57265757[7])
311+ if (($size57265757 == 8))
312+ then $acc857265757
313+ else {
314+ let $acc957265757 = isSymbolC($acc857265757, $list57265757[8])
315+ throw("List size exceed 8")
316+ }
317+ }
318+ }
319+ }
320+ }
321+ }
322+ }
323+ }
324+ }
325+ }) + "C"))) + getAmountOrClear((toString({
326+ let $list57965827 = genotype
327+ let $size57965827 = size($list57965827)
328+ let $acc057965827 = 0
329+ if (($size57965827 == 0))
330+ then $acc057965827
331+ else {
332+ let $acc157965827 = isSymbolD($acc057965827, $list57965827[0])
333+ if (($size57965827 == 1))
334+ then $acc157965827
335+ else {
336+ let $acc257965827 = isSymbolD($acc157965827, $list57965827[1])
337+ if (($size57965827 == 2))
338+ then $acc257965827
339+ else {
340+ let $acc357965827 = isSymbolD($acc257965827, $list57965827[2])
341+ if (($size57965827 == 3))
342+ then $acc357965827
343+ else {
344+ let $acc457965827 = isSymbolD($acc357965827, $list57965827[3])
345+ if (($size57965827 == 4))
346+ then $acc457965827
347+ else {
348+ let $acc557965827 = isSymbolD($acc457965827, $list57965827[4])
349+ if (($size57965827 == 5))
350+ then $acc557965827
351+ else {
352+ let $acc657965827 = isSymbolD($acc557965827, $list57965827[5])
353+ if (($size57965827 == 6))
354+ then $acc657965827
355+ else {
356+ let $acc757965827 = isSymbolD($acc657965827, $list57965827[6])
357+ if (($size57965827 == 7))
358+ then $acc757965827
359+ else {
360+ let $acc857965827 = isSymbolD($acc757965827, $list57965827[7])
361+ if (($size57965827 == 8))
362+ then $acc857965827
363+ else {
364+ let $acc957965827 = isSymbolD($acc857965827, $list57965827[8])
365+ throw("List size exceed 8")
366+ }
367+ }
368+ }
369+ }
370+ }
371+ }
372+ }
373+ }
374+ }
375+ }) + "D"))) + getAmountOrClear((toString({
376+ let $list58645895 = genotype
377+ let $size58645895 = size($list58645895)
378+ let $acc058645895 = 0
379+ if (($size58645895 == 0))
380+ then $acc058645895
381+ else {
382+ let $acc158645895 = isSymbolE($acc058645895, $list58645895[0])
383+ if (($size58645895 == 1))
384+ then $acc158645895
385+ else {
386+ let $acc258645895 = isSymbolE($acc158645895, $list58645895[1])
387+ if (($size58645895 == 2))
388+ then $acc258645895
389+ else {
390+ let $acc358645895 = isSymbolE($acc258645895, $list58645895[2])
391+ if (($size58645895 == 3))
392+ then $acc358645895
393+ else {
394+ let $acc458645895 = isSymbolE($acc358645895, $list58645895[3])
395+ if (($size58645895 == 4))
396+ then $acc458645895
397+ else {
398+ let $acc558645895 = isSymbolE($acc458645895, $list58645895[4])
399+ if (($size58645895 == 5))
400+ then $acc558645895
401+ else {
402+ let $acc658645895 = isSymbolE($acc558645895, $list58645895[5])
403+ if (($size58645895 == 6))
404+ then $acc658645895
405+ else {
406+ let $acc758645895 = isSymbolE($acc658645895, $list58645895[6])
407+ if (($size58645895 == 7))
408+ then $acc758645895
409+ else {
410+ let $acc858645895 = isSymbolE($acc758645895, $list58645895[7])
411+ if (($size58645895 == 8))
412+ then $acc858645895
413+ else {
414+ let $acc958645895 = isSymbolE($acc858645895, $list58645895[8])
415+ throw("List size exceed 8")
416+ }
417+ }
418+ }
419+ }
420+ }
421+ }
422+ }
423+ }
424+ }
425+ }) + "E"))) + getAmountOrClear((toString({
426+ let $list59325963 = genotype
427+ let $size59325963 = size($list59325963)
428+ let $acc059325963 = 0
429+ if (($size59325963 == 0))
430+ then $acc059325963
431+ else {
432+ let $acc159325963 = isSymbolF($acc059325963, $list59325963[0])
433+ if (($size59325963 == 1))
434+ then $acc159325963
435+ else {
436+ let $acc259325963 = isSymbolF($acc159325963, $list59325963[1])
437+ if (($size59325963 == 2))
438+ then $acc259325963
439+ else {
440+ let $acc359325963 = isSymbolF($acc259325963, $list59325963[2])
441+ if (($size59325963 == 3))
442+ then $acc359325963
443+ else {
444+ let $acc459325963 = isSymbolF($acc359325963, $list59325963[3])
445+ if (($size59325963 == 4))
446+ then $acc459325963
447+ else {
448+ let $acc559325963 = isSymbolF($acc459325963, $list59325963[4])
449+ if (($size59325963 == 5))
450+ then $acc559325963
451+ else {
452+ let $acc659325963 = isSymbolF($acc559325963, $list59325963[5])
453+ if (($size59325963 == 6))
454+ then $acc659325963
455+ else {
456+ let $acc759325963 = isSymbolF($acc659325963, $list59325963[6])
457+ if (($size59325963 == 7))
458+ then $acc759325963
459+ else {
460+ let $acc859325963 = isSymbolF($acc759325963, $list59325963[7])
461+ if (($size59325963 == 8))
462+ then $acc859325963
463+ else {
464+ let $acc959325963 = isSymbolF($acc859325963, $list59325963[8])
465+ throw("List size exceed 8")
466+ }
467+ }
468+ }
469+ }
470+ }
471+ }
472+ }
473+ }
474+ }
475+ }) + "F"))) + getAmountOrClear((toString({
476+ let $list60026033 = genotype
477+ let $size60026033 = size($list60026033)
478+ let $acc060026033 = 0
479+ if (($size60026033 == 0))
480+ then $acc060026033
481+ else {
482+ let $acc160026033 = isSymbolG($acc060026033, $list60026033[0])
483+ if (($size60026033 == 1))
484+ then $acc160026033
485+ else {
486+ let $acc260026033 = isSymbolG($acc160026033, $list60026033[1])
487+ if (($size60026033 == 2))
488+ then $acc260026033
489+ else {
490+ let $acc360026033 = isSymbolG($acc260026033, $list60026033[2])
491+ if (($size60026033 == 3))
492+ then $acc360026033
493+ else {
494+ let $acc460026033 = isSymbolG($acc360026033, $list60026033[3])
495+ if (($size60026033 == 4))
496+ then $acc460026033
497+ else {
498+ let $acc560026033 = isSymbolG($acc460026033, $list60026033[4])
499+ if (($size60026033 == 5))
500+ then $acc560026033
501+ else {
502+ let $acc660026033 = isSymbolG($acc560026033, $list60026033[5])
503+ if (($size60026033 == 6))
504+ then $acc660026033
505+ else {
506+ let $acc760026033 = isSymbolG($acc660026033, $list60026033[6])
507+ if (($size60026033 == 7))
508+ then $acc760026033
509+ else {
510+ let $acc860026033 = isSymbolG($acc760026033, $list60026033[7])
511+ if (($size60026033 == 8))
512+ then $acc860026033
513+ else {
514+ let $acc960026033 = isSymbolG($acc860026033, $list60026033[8])
515+ throw("List size exceed 8")
516+ }
517+ }
518+ }
519+ }
520+ }
521+ }
522+ }
523+ }
524+ }
525+ }) + "G"))) + getAmountOrClear((toString({
526+ let $list60706101 = genotype
527+ let $size60706101 = size($list60706101)
528+ let $acc060706101 = 0
529+ if (($size60706101 == 0))
530+ then $acc060706101
531+ else {
532+ let $acc160706101 = isSymbolH($acc060706101, $list60706101[0])
533+ if (($size60706101 == 1))
534+ then $acc160706101
535+ else {
536+ let $acc260706101 = isSymbolH($acc160706101, $list60706101[1])
537+ if (($size60706101 == 2))
538+ then $acc260706101
539+ else {
540+ let $acc360706101 = isSymbolH($acc260706101, $list60706101[2])
541+ if (($size60706101 == 3))
542+ then $acc360706101
543+ else {
544+ let $acc460706101 = isSymbolH($acc360706101, $list60706101[3])
545+ if (($size60706101 == 4))
546+ then $acc460706101
547+ else {
548+ let $acc560706101 = isSymbolH($acc460706101, $list60706101[4])
549+ if (($size60706101 == 5))
550+ then $acc560706101
551+ else {
552+ let $acc660706101 = isSymbolH($acc560706101, $list60706101[5])
553+ if (($size60706101 == 6))
554+ then $acc660706101
555+ else {
556+ let $acc760706101 = isSymbolH($acc660706101, $list60706101[6])
557+ if (($size60706101 == 7))
558+ then $acc760706101
559+ else {
560+ let $acc860706101 = isSymbolH($acc760706101, $list60706101[7])
561+ if (($size60706101 == 8))
562+ then $acc860706101
563+ else {
564+ let $acc960706101 = isSymbolH($acc860706101, $list60706101[8])
565+ throw("List size exceed 8")
566+ }
567+ }
568+ }
569+ }
570+ }
571+ }
572+ }
573+ }
574+ }
575+ }) + "H"))) + "-") + generation)
576+ }
577+
578+
123579 @Callable(i)
124580 func startDuckBreeding () = {
125581 let firstAssetId = toBase58String(value(value(i.payments[0]).assetId))
126582 let secondAssetId = toBase58String(value(value(i.payments[1]).assetId))
127583 if (!(if (checkAssetInIncubator(firstAssetId))
128584 then checkAssetInIncubator(secondAssetId)
129585 else false))
130586 then throw("You need to attach 2 valid NFT-ducks.")
131587 else if (if ((tryGetInteger((("asset_" + firstAssetId) + "_children")) > 0))
132588 then true
133589 else (tryGetInteger((("asset_" + secondAssetId) + "_children")) > 0))
134590 then throw("One duck can be used for breeding only once in its lifetime.")
135591 else {
136592 let breededStatus = canBeBreeded(fromBase58String(firstAssetId), fromBase58String(secondAssetId))
137593 if ((breededStatus != "true"))
138594 then throw(("These ducks cannot be breeded: " + breededStatus))
139595 else [StringEntry(getDuckParentKey(i.transactionId, 1), firstAssetId), StringEntry(getDuckParentKey(i.transactionId, 2), secondAssetId), StringEntry(getProcessStatusKey(toString(i.caller), i.transactionId), HatchingStarted), IntegerEntry(getProcessFinishHeightKey(toString(i.caller), i.transactionId), (height + delayForHatching))]
140596 }
141597 }
142598
143599
144600
145601 @Callable(i)
146602 func finishDuckHatching (txIdStr) = {
147603 let txId = fromBase58String(txIdStr)
148604 let processStatusKey = getProcessStatusKey(toString(i.caller), txId)
149605 let finishHeightKey = getProcessFinishHeightKey(toString(i.caller), txId)
150606 let duckIdKey = getDuckIdKey(toString(i.caller), txId)
151607 let processTxStatus = getStringValue(this, processStatusKey)
152608 let processFinishHeight = getIntegerValue(this, finishHeightKey)
153609 if ((processTxStatus == HatchingFinished))
154610 then {
155611 let duckId = getStringValue(this, getDuckIdKey(toString(i.caller), txId))
156612 throw(("The duck was breeded and claimed already, here is the folowing: " + duckId))
157613 }
158614 else if ((processFinishHeight > height))
159615 then throw((((("Breeding is not finished yet " + toString((processFinishHeight - height))) + " blocks remaining, it will take around ") + toString((processFinishHeight - height))) + " minutes"))
160616 else {
161617 let duckGen = generateDuck(txId, processFinishHeight)
618+ let farmGen = getGen(duckGen)
162619 let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
163620 let asset = Issue(duckGen, description, 1, 0, false, unit, processFinishHeight)
164621 let assetId = calculateAssetId(asset)
165622 let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1)
623+ let quantities = tryGetInteger((("stats_" + farmGen) + "_quantity"))
166624 let parent1Id = tryGetString(getDuckParentKey(txId, 1))
167625 let parent2Id = tryGetString(getDuckParentKey(txId, 2))
168-[StringEntry(processStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("asset_" + parent1Id) + "_children"), 1), IntegerEntry((("asset_" + parent2Id) + "_children"), 1), asset, ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, 1, fromBase58String(parent1Id)), ScriptTransfer(i.caller, 1, fromBase58String(parent2Id))]
626+[StringEntry(processStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (quantities + 1)), IntegerEntry((("asset_" + parent1Id) + "_children"), 1), IntegerEntry((("asset_" + parent2Id) + "_children"), 1), asset, ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(i.caller, 1, fromBase58String(parent1Id)), ScriptTransfer(i.caller, 1, fromBase58String(parent2Id))]
169627 }
628+ }
629+
630+
631+
632+@Callable(i)
633+func reduceRarity (assetId) = {
634+ let asset = fromBase58String(assetId)
635+ if (if ((i.caller != Address(rebirthAddress)))
636+ then (i.caller != this)
637+ else false)
638+ then throw("admin or rebirth only")
639+ else {
640+ let duckGen = value(assetInfo(asset)).name
641+ let farmGen = getGen(duckGen)
642+[IntegerEntry(getDuckStatsKey(duckGen), (tryGetInteger(getDuckStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
643+ }
170644 }
171645
172646
173647 @Verifier(tx)
174648 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
175649

github/deemru/w8io/db10caa 
101.69 ms