tx · HB15oGLWaSruP5MbKKtcryKYJoiBZbA3N9bkc2b3LLe3 3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y: -0.01000000 Waves 2021.06.16 11:57 [2637439] smart account 3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y > SELF 0.00000000 Waves
{ "type": 13, "id": "HB15oGLWaSruP5MbKKtcryKYJoiBZbA3N9bkc2b3LLe3", "fee": 1000000, "feeAssetId": null, "timestamp": 1623833899309, "version": 2, "chainId": 87, "sender": "3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y", "senderPublicKey": "4o7Wphn2swW4DxuPY7UcT6YpsZniEMnDH818h1pC3BeX", "proofs": [ "5odNLzFamYrzqQQY6Lgoqmu94Y1i8GvmgBAfeh5nWG7P9piho8qLx8DG2Pd5VQJs8DmWES5ogxujJmUwmit8rXPY" ], "script": "base64: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AAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAIFAAAADSRhY2MyNTg2NDU4OTUEAAAADSRhY2MzNTg2NDU4OTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMjU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAMFAAAADSRhY2MzNTg2NDU4OTUEAAAADSRhY2M0NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjMzU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAQFAAAADSRhY2M0NTg2NDU4OTUEAAAADSRhY2M1NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNDU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAUFAAAADSRhY2M1NTg2NDU4OTUEAAAADSRhY2M2NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNTU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAYFAAAADSRhY2M2NTg2NDU4OTUEAAAADSRhY2M3NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNjU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAcFAAAADSRhY2M3NTg2NDU4OTUEAAAADSRhY2M4NTg2NDU4OTUJAQAAAAlpc1N5bWJvbEMAAAACBQAAAA0kYWNjNzU4NjQ1ODk1CQABkQAAAAIFAAAADSRsaXN0NTg2NDU4OTUAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNTg2NDU4OTUAAAAAAAAAAAgFAAAA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AAANJGFjYzA2MDA0NjAzNQQAAAANJGFjYzE2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MwNjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAAAQUAAAANJGFjYzE2MDA0NjAzNQQAAAANJGFjYzI2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MxNjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAAAgUAAAANJGFjYzI2MDA0NjAzNQQAAAANJGFjYzM2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MyNjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAAAwUAAAANJGFjYzM2MDA0NjAzNQQAAAANJGFjYzQ2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2MzNjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAABAUAAAANJGFjYzQ2MDA0NjAzNQQAAAANJGFjYzU2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M0NjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAABQUAAAANJGFjYzU2MDA0NjAzNQQAAAANJGFjYzY2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M1NjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAABQMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAABgUAAAANJGFjYzY2MDA0NjAzNQQAAAANJGFjYzc2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M2NjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAABwUAAAANJGFjYzc2MDA0NjAzNQQAAAANJGFjYzg2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M3NjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAABwMJAAAAAAAAAgUAAAANJHNpemU2MDA0NjAzNQAAAAAAAAAACAUAAAANJGFjYzg2MDA0NjAzNQQAAAANJGFjYzk2MDA0NjAzNQkBAAAACWlzU3ltYm9sRQAAAAIFAAAADSRhY2M4NjAwNDYwMzUJAAGRAAAAAgUAAAANJGxpc3Q2MDA0NjAzNQAAAAAAAAAACAkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDgCAAAAAUUJAQAAABBnZXRBbW91bnRPckNsZWFyAAAAAQkAASwAAAACCQABpAAAAAEEAAAADSRsaXN0NjA3NDYxMDUFAAAACGdlbm90eXBlBAAAAA0kc2l6ZTYwNzQ2MTA1CQABkAAAAAEFAAAADSRsaXN0NjA3NDYxMDUEAAAADSRhY2MwNjA3NDYxMDUAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAAFAAAADSRhY2MwNjA3NDYxMDUEAAAADSRhY2MxNjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMDYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAEFAAAADSRhY2MxNjA3NDYxMDUEAAAADSRhY2MyNjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMTYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAIFAAAADSRhY2MyNjA3NDYxMDUEAAAADSRhY2MzNjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMjYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAMFAAAADSRhY2MzNjA3NDYxMDUEAAAADSRhY2M0NjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjMzYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAQFAAAADSRhY2M0NjA3NDYxMDUEAAAADSRhY2M1NjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNDYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAUFAAAADSRhY2M1NjA3NDYxMDUEAAAADSRhY2M2NjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNTYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAYFAAAADSRhY2M2NjA3NDYxMDUEAAAADSRhY2M3NjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNjYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAcFAAAADSRhY2M3NjA3NDYxMDUEAAAADSRhY2M4NjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjNzYwNzQ2MTA1CQABkQAAAAIFAAAADSRsaXN0NjA3NDYxMDUAAAAAAAAAAAcDCQAAAAAAAAIFAAAADSRzaXplNjA3NDYxMDUAAAAAAAAAAAgFAAAADSRhY2M4NjA3NDYxMDUEAAAADSRhY2M5NjA3NDYxMDUJAQAAAAlpc1N5bWJvbEYAAAACBQAAAA0kYWNjODYwNzQ2MTA1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NDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAAAAMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAAAQUAAAANJGFjYzE2MjE0NjI0NQQAAAANJGFjYzI2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2MxNjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAAAQMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAAAgUAAAANJGFjYzI2MjE0NjI0NQQAAAANJGFjYzM2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2MyNjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAAAgMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAAAwUAAAANJGFjYzM2MjE0NjI0NQQAAAANJGFjYzQ2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2MzNjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAAAwMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAABAUAAAANJGFjYzQ2MjE0NjI0NQQAAAANJGFjYzU2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2M0NjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAABAMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAABQUAAAANJGFjYzU2MjE0NjI0NQQAAAANJGFjYzY2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2M1NjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAABQMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAABgUAAAANJGFjYzY2MjE0NjI0NQQAAAANJGFjYzc2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2M2NjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAABgMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAABwUAAAANJGFjYzc2MjE0NjI0NQQAAAANJGFjYzg2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2M3NjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAABwMJAAAAAAAAAgUAAAANJHNpemU2MjE0NjI0NQAAAAAAAAAACAUAAAANJGFjYzg2MjE0NjI0NQQAAAANJGFjYzk2MjE0NjI0NQkBAAAACWlzU3ltYm9sSAAAAAIFAAAADSRhY2M4NjIxNDYyNDUJAAGRAAAAAgUAAAANJGxpc3Q2MjE0NjI0NQAAAAAAAAAACAkAAAIAAAABAgAAABJMaXN0IHNpemUgZXhjZWVkIDgCAAAAAUgAAAACAAAAAWkBAAAAEXN0YXJ0RHVja0JyZWVkaW5nAAAAAAQAAAAMZmlyc3RBc3NldElkCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAADXNlY29uZEFzc2V0SWQJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAHYXNzZXRJZAMJAQAAAAEhAAAAAQMJAQAAABVjaGVja0Fzc2V0SW5JbmN1YmF0b3IAAAABBQAAAAxmaXJzdEFzc2V0SWQJAQAAABVjaGVja0Fzc2V0SW5JbmN1YmF0b3IAAAABBQAAAA1zZWNvbmRBc3NldElkBwkAAAIAAAABAgAAACVZb3UgbmVlZCB0byBhdHRhY2ggMiB2YWxpZCBORlQtZHVja3MuAwMJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGYXNzZXRfBQAAAAxmaXJzdEFzc2V0SWQCAAAACV9jaGlsZHJlbgAAAAAAAAAAAAYJAABmAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGYXNzZXRfBQAAAA1zZWNvbmRBc3NldElkAgAAAAlfY2hpbGRyZW4AAAAAAAAAAAAJAAACAAAAAQIAAAA8T25lIGR1Y2sgY2FuIGJlIHVzZWQgZm9yIGJyZWVkaW5nIG9ubHkgb25jZSBpbiBpdHMgbGlmZXRpbWUuBAAAAA1icmVlZGVkU3RhdHVzCQEAAAAMY2FuQmVCcmVlZGVkAAAAAgkAAlkAAAABBQAAAAxmaXJzdEFzc2V0SWQJAAJZAAAAAQUAAAANc2Vjb25kQXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAADWJyZWVkZWRTdGF0dXMCAAAABHRydWUJAAACAAAAAQkAASwAAAACAgAAAB9UaGVzZSBkdWNrcyBjYW5ub3QgYmUgYnJlZWRlZDogBQAAAA1icmVlZGVkU3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXREdWNrUGFyZW50S2V5AAAAAggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAAAAAAAAAAAAQUAAAAMZmlyc3RBc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXREdWNrUGFyZW50S2V5AAAAAggFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAAAAAAAAAAAAgUAAAANc2Vjb25kQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATZ2V0UHJvY2Vzc1N0YXR1c0tleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAA9IYXRjaGluZ1N0YXJ0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABlnZXRQcm9jZXNzRmluaXNoSGVpZ2h0S2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAABBkZWxheUZvckhhdGNoaW5nBQAAAANuaWwAAAABaQEAAAASZmluaXNoRHVja0hhdGNoaW5nAAAAAQAAAAd0eElkU3RyBAAAAAR0eElkCQACWQAAAAEFAAAAB3R4SWRTdHIEAAAAEHByb2Nlc3NTdGF0dXNLZXkJAQAAABNnZXRQcm9jZXNzU3RhdHVzS2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQEAAAAD2ZpbmlzaEhlaWdodEtleQkBAAAAGWdldFByb2Nlc3NGaW5pc2hIZWlnaHRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAQAAAAJZHVja0lkS2V5CQEAAAAMZ2V0RHVja0lkS2V5AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABHR4SWQEAAAAD3Byb2Nlc3NUeFN0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAQcHJvY2Vzc1N0YXR1c0tleQQAAAATcHJvY2Vzc0ZpbmlzaEhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPZmluaXNoSGVpZ2h0S2V5AwkAAAAAAAACBQAAAA9wcm9jZXNzVHhTdGF0dXMFAAAAEEhhdGNoaW5nRmluaXNoZWQEAAAABmR1Y2tJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkBAAAADGdldER1Y2tJZEtleQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAR0eElkCQAAAgAAAAEJAAEsAAAAAgIAAABAVGhlIGR1Y2sgd2FzIGJyZWVkZWQgYW5kIGNsYWltZWQgYWxyZWFkeSwgaGVyZSBpcyB0aGUgZm9sb3dpbmc6IAUAAAAGZHVja0lkAwkAAGYAAAACBQAAABNwcm9jZXNzRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB1CcmVlZGluZyBpcyBub3QgZmluaXNoZWQgeWV0IAkAAaQAAAABCQAAZQAAAAIFAAAAE3Byb2Nlc3NGaW5pc2hIZWlnaHQFAAAABmhlaWdodAIAAAAnIGJsb2NrcyByZW1haW5pbmcsIGl0IHdpbGwgdGFrZSBhcm91bmQgCQABpAAAAAEJAABlAAAAAgUAAAATcHJvY2Vzc0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0AgAAAAggbWludXRlcwQAAAAHZHVja0dlbgkBAAAADGdlbmVyYXRlRHVjawAAAAIFAAAABHR4SWQFAAAAE3Byb2Nlc3NGaW5pc2hIZWlnaHQEAAAAB2Zhcm1HZW4JAQAAAAZnZXRHZW4AAAABBQAAAAdkdWNrR2VuBAAAAAtkZXNjcmlwdGlvbgkAASwAAAACCQABLAAAAAICAAAADnsiZ2Vub3R5cGUiOiAiBQAAAAdkdWNrR2VuAgAAABkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAAAAAVhc3NldAkABEMAAAAHBQAAAAdkdWNrR2VuBQAAAAtkZXNjcmlwdGlvbgAAAAAAAAAAAQAAAAAAAAAAAAcFAAAABHVuaXQFAAAAE3Byb2Nlc3NGaW5pc2hIZWlnaHQEAAAAB2Fzc2V0SWQJAAQ4AAAAAQUAAAAFYXNzZXQEAAAABmFtb3VudAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA9nZXREdWNrU3RhdHNLZXkAAAABBQAAAAdkdWNrR2VuAAAAAAAAAAABBAAAAApxdWFudGl0aWVzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACAgAAAAZzdGF0c18FAAAAB2Zhcm1HZW4CAAAAC19xdWFudGl0aWVzBAAAAAlwYXJlbnQxSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAQZ2V0RHVja1BhcmVudEtleQAAAAIFAAAABHR4SWQAAAAAAAAAAAEEAAAACXBhcmVudDJJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXREdWNrUGFyZW50S2V5AAAAAgUAAAAEdHhJZAAAAAAAAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABBwcm9jZXNzU3RhdHVzS2V5BQAAABBIYXRjaGluZ0ZpbmlzaGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACWR1Y2tJZEtleQkAAlgAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAJYAAAAAQUAAAAHYXNzZXRJZAUAAAAJZHVja0lkS2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPZ2V0RHVja1N0YXRzS2V5AAAAAQUAAAAHZHVja0dlbgUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGc3RhdHNfBQAAAAdmYXJtR2VuAgAAAAtfcXVhbnRpdGllcwkAAGQAAAACBQAAAApxdWFudGl0aWVzAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGYXNzZXRfBQAAAAlwYXJlbnQxSWQCAAAACV9jaGlsZHJlbgAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAJcGFyZW50MklkAgAAAAlfY2hpbGRyZW4AAAAAAAAAAAEJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgAAAAAAAAAAAQkAAlkAAAABBQAAAAlwYXJlbnQxSWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAACXBhcmVudDJJZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmEyCS1", "height": 2637439, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 8mBkp67NGJ95GjWGkz69JyJfjKNWYHPTxQBCXzr8BimA Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let delayForHatching = 0 | |
5 | + | ||
6 | + | let HatchingStarted = "BREEDING_STARTED" | |
7 | + | ||
8 | + | let HatchingFinished = "BREEDING_FINISHED" | |
9 | + | ||
10 | + | let incubatorAddress = base58'3P6TwNU39Ykkbeqhn5TE4a2736xsA1vXemM' | |
11 | + | ||
12 | + | let GENS = ["A", "B", "C", "D", "E", "F", "G"] | |
13 | + | ||
14 | + | let MaxGeneration = 4 | |
15 | + | ||
16 | + | let Generations = ["G", "H", "I", "K", "L", "M", "N"] | |
17 | + | ||
18 | + | func getProcessStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status") | |
19 | + | ||
20 | + | ||
21 | + | func getProcessFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh") | |
22 | + | ||
23 | + | ||
24 | + | func getDuckParentKey (txId,parentNum) = ((("inittx_" + toBase58String(txId)) + "_parent") + toString(parentNum)) | |
25 | + | ||
26 | + | ||
27 | + | func getDuckIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di") | |
28 | + | ||
29 | + | ||
30 | + | func getDuckStatsKey (genString) = (("stats_" + genString) + "_amount") | |
31 | + | ||
32 | + | ||
33 | + | func tryGetInteger (key) = { | |
34 | + | let val = match getInteger(this, key) { | |
35 | + | case b: Int => | |
36 | + | b | |
37 | + | case _ => | |
38 | + | 0 | |
39 | + | } | |
40 | + | val | |
41 | + | } | |
42 | + | ||
43 | + | ||
44 | + | func tryGetString (key) = { | |
45 | + | let val = match getString(this, key) { | |
46 | + | case b: String => | |
47 | + | b | |
48 | + | case _ => | |
49 | + | "" | |
50 | + | } | |
51 | + | val | |
52 | + | } | |
53 | + | ||
54 | + | ||
55 | + | func determineGeneration (g1,g2) = { | |
56 | + | let gIndex = max([value(indexOf(Generations, g1)), value(indexOf(Generations, g2))]) | |
57 | + | Generations[(gIndex + 1)] | |
58 | + | } | |
59 | + | ||
60 | + | ||
61 | + | func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = { | |
62 | + | let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1))) | |
63 | + | let randomHash = sha256_16Kb((txId + value(randomSeedBlock.vrf))) | |
64 | + | (toInt(randomHash, offset) % variants) | |
65 | + | } | |
66 | + | ||
67 | + | ||
68 | + | func getRandomGen (gen1,gen2,step,txId,hatchingFinishHeight) = { | |
69 | + | let randomNum = getRandomNumber(2, txId, hatchingFinishHeight, step) | |
70 | + | let gen = if ((randomNum == 0)) | |
71 | + | then gen1 | |
72 | + | else gen2 | |
73 | + | gen | |
74 | + | } | |
75 | + | ||
76 | + | ||
77 | + | func generateDuck (txId,hatchingFinishHeight) = { | |
78 | + | let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 11) | |
79 | + | let color = if ((colorRandom == 0)) | |
80 | + | then "Y" | |
81 | + | else if ((colorRandom == 1)) | |
82 | + | then "G" | |
83 | + | else if ((colorRandom == 2)) | |
84 | + | then "B" | |
85 | + | else "R" | |
86 | + | let parent1Id = fromBase58String(tryGetString(getDuckParentKey(txId, 1))) | |
87 | + | let parent2Id = fromBase58String(tryGetString(getDuckParentKey(txId, 2))) | |
88 | + | let parent1Gen = split(value(assetInfo(parent1Id)).name, "") | |
89 | + | let parent2Gen = split(value(assetInfo(parent2Id)).name, "") | |
90 | + | 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) | |
91 | + | gen | |
92 | + | } | |
93 | + | ||
94 | + | ||
95 | + | func checkAssetInIncubator (assetId) = { | |
96 | + | let result = match getString(Address(incubatorAddress), assetId) { | |
97 | + | case b: String => | |
98 | + | true | |
99 | + | case _ => | |
100 | + | false | |
101 | + | } | |
102 | + | let result2 = match getString(this, assetId) { | |
103 | + | case c: String => | |
104 | + | true | |
105 | + | case _ => | |
106 | + | false | |
107 | + | } | |
108 | + | if (result) | |
109 | + | then true | |
110 | + | else result2 | |
111 | + | } | |
112 | + | ||
113 | + | ||
114 | + | func canBeBreeded (asset1Id,asset2Id) = { | |
115 | + | let asset1Gen = split(value(assetInfo(asset1Id)).name, "") | |
116 | + | let asset2Gen = split(value(assetInfo(asset2Id)).name, "") | |
117 | + | if ((value(indexOf(Generations, asset1Gen[14])) >= MaxGeneration)) | |
118 | + | then (("you can only breed ducks with generation " + Generations[MaxGeneration]) + " and lower") | |
119 | + | else if ((value(indexOf(Generations, asset2Gen[14])) >= MaxGeneration)) | |
120 | + | then (("you can only breed ducks with generation " + Generations[MaxGeneration]) + " and lower") | |
121 | + | else "true" | |
122 | + | } | |
123 | + | ||
124 | + | ||
125 | + | func handleGen (accumulated,gen) = { | |
126 | + | let i = match indexOf(GENS, gen) { | |
127 | + | case x: Int => | |
128 | + | x | |
129 | + | case _ => | |
130 | + | 0 | |
131 | + | } | |
132 | + | ((take(accumulated, i) + toString((parseIntValue(split(accumulated, "")[i]) + 1))) + takeRight(accumulated, ((8 - 1) - i))) | |
133 | + | } | |
134 | + | ||
135 | + | ||
136 | + | func isSymbolA (accumulated,sym) = if ((sym == "A")) | |
137 | + | then (accumulated + 1) | |
138 | + | else (accumulated + 0) | |
139 | + | ||
140 | + | ||
141 | + | func isSymbolB (accumulated,sym) = if ((sym == "B")) | |
142 | + | then (accumulated + 1) | |
143 | + | else (accumulated + 0) | |
144 | + | ||
145 | + | ||
146 | + | func isSymbolC (accumulated,sym) = if ((sym == "C")) | |
147 | + | then (accumulated + 1) | |
148 | + | else (accumulated + 0) | |
149 | + | ||
150 | + | ||
151 | + | func isSymbolD (accumulated,sym) = if ((sym == "D")) | |
152 | + | then (accumulated + 1) | |
153 | + | else (accumulated + 0) | |
154 | + | ||
155 | + | ||
156 | + | func isSymbolE (accumulated,sym) = if ((sym == "E")) | |
157 | + | then (accumulated + 1) | |
158 | + | else (accumulated + 0) | |
159 | + | ||
160 | + | ||
161 | + | func isSymbolF (accumulated,sym) = if ((sym == "F")) | |
162 | + | then (accumulated + 1) | |
163 | + | else (accumulated + 0) | |
164 | + | ||
165 | + | ||
166 | + | func isSymbolG (accumulated,sym) = if ((sym == "G")) | |
167 | + | then (accumulated + 1) | |
168 | + | else (accumulated + 0) | |
169 | + | ||
170 | + | ||
171 | + | func isSymbolH (accumulated,sym) = if ((sym == "H")) | |
172 | + | then (accumulated + 1) | |
173 | + | else (accumulated + 0) | |
174 | + | ||
175 | + | ||
176 | + | func getAmountOrClear (amount) = if (contains(amount, "0")) | |
177 | + | then "" | |
178 | + | else amount | |
179 | + | ||
180 | + | ||
181 | + | func getGen (assetName) = { | |
182 | + | let genotype = split(dropRight(drop(assetName, 5), 3), "") | |
183 | + | (((((((getAmountOrClear((toString({ | |
184 | + | let $list57245755 = genotype | |
185 | + | let $size57245755 = size($list57245755) | |
186 | + | let $acc057245755 = 0 | |
187 | + | if (($size57245755 == 0)) | |
188 | + | then $acc057245755 | |
189 | + | else { | |
190 | + | let $acc157245755 = isSymbolA($acc057245755, $list57245755[0]) | |
191 | + | if (($size57245755 == 1)) | |
192 | + | then $acc157245755 | |
193 | + | else { | |
194 | + | let $acc257245755 = isSymbolA($acc157245755, $list57245755[1]) | |
195 | + | if (($size57245755 == 2)) | |
196 | + | then $acc257245755 | |
197 | + | else { | |
198 | + | let $acc357245755 = isSymbolA($acc257245755, $list57245755[2]) | |
199 | + | if (($size57245755 == 3)) | |
200 | + | then $acc357245755 | |
201 | + | else { | |
202 | + | let $acc457245755 = isSymbolA($acc357245755, $list57245755[3]) | |
203 | + | if (($size57245755 == 4)) | |
204 | + | then $acc457245755 | |
205 | + | else { | |
206 | + | let $acc557245755 = isSymbolA($acc457245755, $list57245755[4]) | |
207 | + | if (($size57245755 == 5)) | |
208 | + | then $acc557245755 | |
209 | + | else { | |
210 | + | let $acc657245755 = isSymbolA($acc557245755, $list57245755[5]) | |
211 | + | if (($size57245755 == 6)) | |
212 | + | then $acc657245755 | |
213 | + | else { | |
214 | + | let $acc757245755 = isSymbolA($acc657245755, $list57245755[6]) | |
215 | + | if (($size57245755 == 7)) | |
216 | + | then $acc757245755 | |
217 | + | else { | |
218 | + | let $acc857245755 = isSymbolA($acc757245755, $list57245755[7]) | |
219 | + | if (($size57245755 == 8)) | |
220 | + | then $acc857245755 | |
221 | + | else { | |
222 | + | let $acc957245755 = isSymbolA($acc857245755, $list57245755[8]) | |
223 | + | throw("List size exceed 8") | |
224 | + | } | |
225 | + | } | |
226 | + | } | |
227 | + | } | |
228 | + | } | |
229 | + | } | |
230 | + | } | |
231 | + | } | |
232 | + | } | |
233 | + | }) + "A")) + getAmountOrClear((toString({ | |
234 | + | let $list57945825 = genotype | |
235 | + | let $size57945825 = size($list57945825) | |
236 | + | let $acc057945825 = 0 | |
237 | + | if (($size57945825 == 0)) | |
238 | + | then $acc057945825 | |
239 | + | else { | |
240 | + | let $acc157945825 = isSymbolB($acc057945825, $list57945825[0]) | |
241 | + | if (($size57945825 == 1)) | |
242 | + | then $acc157945825 | |
243 | + | else { | |
244 | + | let $acc257945825 = isSymbolB($acc157945825, $list57945825[1]) | |
245 | + | if (($size57945825 == 2)) | |
246 | + | then $acc257945825 | |
247 | + | else { | |
248 | + | let $acc357945825 = isSymbolB($acc257945825, $list57945825[2]) | |
249 | + | if (($size57945825 == 3)) | |
250 | + | then $acc357945825 | |
251 | + | else { | |
252 | + | let $acc457945825 = isSymbolB($acc357945825, $list57945825[3]) | |
253 | + | if (($size57945825 == 4)) | |
254 | + | then $acc457945825 | |
255 | + | else { | |
256 | + | let $acc557945825 = isSymbolB($acc457945825, $list57945825[4]) | |
257 | + | if (($size57945825 == 5)) | |
258 | + | then $acc557945825 | |
259 | + | else { | |
260 | + | let $acc657945825 = isSymbolB($acc557945825, $list57945825[5]) | |
261 | + | if (($size57945825 == 6)) | |
262 | + | then $acc657945825 | |
263 | + | else { | |
264 | + | let $acc757945825 = isSymbolB($acc657945825, $list57945825[6]) | |
265 | + | if (($size57945825 == 7)) | |
266 | + | then $acc757945825 | |
267 | + | else { | |
268 | + | let $acc857945825 = isSymbolB($acc757945825, $list57945825[7]) | |
269 | + | if (($size57945825 == 8)) | |
270 | + | then $acc857945825 | |
271 | + | else { | |
272 | + | let $acc957945825 = isSymbolB($acc857945825, $list57945825[8]) | |
273 | + | throw("List size exceed 8") | |
274 | + | } | |
275 | + | } | |
276 | + | } | |
277 | + | } | |
278 | + | } | |
279 | + | } | |
280 | + | } | |
281 | + | } | |
282 | + | } | |
283 | + | }) + "B"))) + getAmountOrClear((toString({ | |
284 | + | let $list58645895 = genotype | |
285 | + | let $size58645895 = size($list58645895) | |
286 | + | let $acc058645895 = 0 | |
287 | + | if (($size58645895 == 0)) | |
288 | + | then $acc058645895 | |
289 | + | else { | |
290 | + | let $acc158645895 = isSymbolC($acc058645895, $list58645895[0]) | |
291 | + | if (($size58645895 == 1)) | |
292 | + | then $acc158645895 | |
293 | + | else { | |
294 | + | let $acc258645895 = isSymbolC($acc158645895, $list58645895[1]) | |
295 | + | if (($size58645895 == 2)) | |
296 | + | then $acc258645895 | |
297 | + | else { | |
298 | + | let $acc358645895 = isSymbolC($acc258645895, $list58645895[2]) | |
299 | + | if (($size58645895 == 3)) | |
300 | + | then $acc358645895 | |
301 | + | else { | |
302 | + | let $acc458645895 = isSymbolC($acc358645895, $list58645895[3]) | |
303 | + | if (($size58645895 == 4)) | |
304 | + | then $acc458645895 | |
305 | + | else { | |
306 | + | let $acc558645895 = isSymbolC($acc458645895, $list58645895[4]) | |
307 | + | if (($size58645895 == 5)) | |
308 | + | then $acc558645895 | |
309 | + | else { | |
310 | + | let $acc658645895 = isSymbolC($acc558645895, $list58645895[5]) | |
311 | + | if (($size58645895 == 6)) | |
312 | + | then $acc658645895 | |
313 | + | else { | |
314 | + | let $acc758645895 = isSymbolC($acc658645895, $list58645895[6]) | |
315 | + | if (($size58645895 == 7)) | |
316 | + | then $acc758645895 | |
317 | + | else { | |
318 | + | let $acc858645895 = isSymbolC($acc758645895, $list58645895[7]) | |
319 | + | if (($size58645895 == 8)) | |
320 | + | then $acc858645895 | |
321 | + | else { | |
322 | + | let $acc958645895 = isSymbolC($acc858645895, $list58645895[8]) | |
323 | + | throw("List size exceed 8") | |
324 | + | } | |
325 | + | } | |
326 | + | } | |
327 | + | } | |
328 | + | } | |
329 | + | } | |
330 | + | } | |
331 | + | } | |
332 | + | } | |
333 | + | }) + "C"))) + getAmountOrClear((toString({ | |
334 | + | let $list59345965 = genotype | |
335 | + | let $size59345965 = size($list59345965) | |
336 | + | let $acc059345965 = 0 | |
337 | + | if (($size59345965 == 0)) | |
338 | + | then $acc059345965 | |
339 | + | else { | |
340 | + | let $acc159345965 = isSymbolD($acc059345965, $list59345965[0]) | |
341 | + | if (($size59345965 == 1)) | |
342 | + | then $acc159345965 | |
343 | + | else { | |
344 | + | let $acc259345965 = isSymbolD($acc159345965, $list59345965[1]) | |
345 | + | if (($size59345965 == 2)) | |
346 | + | then $acc259345965 | |
347 | + | else { | |
348 | + | let $acc359345965 = isSymbolD($acc259345965, $list59345965[2]) | |
349 | + | if (($size59345965 == 3)) | |
350 | + | then $acc359345965 | |
351 | + | else { | |
352 | + | let $acc459345965 = isSymbolD($acc359345965, $list59345965[3]) | |
353 | + | if (($size59345965 == 4)) | |
354 | + | then $acc459345965 | |
355 | + | else { | |
356 | + | let $acc559345965 = isSymbolD($acc459345965, $list59345965[4]) | |
357 | + | if (($size59345965 == 5)) | |
358 | + | then $acc559345965 | |
359 | + | else { | |
360 | + | let $acc659345965 = isSymbolD($acc559345965, $list59345965[5]) | |
361 | + | if (($size59345965 == 6)) | |
362 | + | then $acc659345965 | |
363 | + | else { | |
364 | + | let $acc759345965 = isSymbolD($acc659345965, $list59345965[6]) | |
365 | + | if (($size59345965 == 7)) | |
366 | + | then $acc759345965 | |
367 | + | else { | |
368 | + | let $acc859345965 = isSymbolD($acc759345965, $list59345965[7]) | |
369 | + | if (($size59345965 == 8)) | |
370 | + | then $acc859345965 | |
371 | + | else { | |
372 | + | let $acc959345965 = isSymbolD($acc859345965, $list59345965[8]) | |
373 | + | throw("List size exceed 8") | |
374 | + | } | |
375 | + | } | |
376 | + | } | |
377 | + | } | |
378 | + | } | |
379 | + | } | |
380 | + | } | |
381 | + | } | |
382 | + | } | |
383 | + | }) + "D"))) + getAmountOrClear((toString({ | |
384 | + | let $list60046035 = genotype | |
385 | + | let $size60046035 = size($list60046035) | |
386 | + | let $acc060046035 = 0 | |
387 | + | if (($size60046035 == 0)) | |
388 | + | then $acc060046035 | |
389 | + | else { | |
390 | + | let $acc160046035 = isSymbolE($acc060046035, $list60046035[0]) | |
391 | + | if (($size60046035 == 1)) | |
392 | + | then $acc160046035 | |
393 | + | else { | |
394 | + | let $acc260046035 = isSymbolE($acc160046035, $list60046035[1]) | |
395 | + | if (($size60046035 == 2)) | |
396 | + | then $acc260046035 | |
397 | + | else { | |
398 | + | let $acc360046035 = isSymbolE($acc260046035, $list60046035[2]) | |
399 | + | if (($size60046035 == 3)) | |
400 | + | then $acc360046035 | |
401 | + | else { | |
402 | + | let $acc460046035 = isSymbolE($acc360046035, $list60046035[3]) | |
403 | + | if (($size60046035 == 4)) | |
404 | + | then $acc460046035 | |
405 | + | else { | |
406 | + | let $acc560046035 = isSymbolE($acc460046035, $list60046035[4]) | |
407 | + | if (($size60046035 == 5)) | |
408 | + | then $acc560046035 | |
409 | + | else { | |
410 | + | let $acc660046035 = isSymbolE($acc560046035, $list60046035[5]) | |
411 | + | if (($size60046035 == 6)) | |
412 | + | then $acc660046035 | |
413 | + | else { | |
414 | + | let $acc760046035 = isSymbolE($acc660046035, $list60046035[6]) | |
415 | + | if (($size60046035 == 7)) | |
416 | + | then $acc760046035 | |
417 | + | else { | |
418 | + | let $acc860046035 = isSymbolE($acc760046035, $list60046035[7]) | |
419 | + | if (($size60046035 == 8)) | |
420 | + | then $acc860046035 | |
421 | + | else { | |
422 | + | let $acc960046035 = isSymbolE($acc860046035, $list60046035[8]) | |
423 | + | throw("List size exceed 8") | |
424 | + | } | |
425 | + | } | |
426 | + | } | |
427 | + | } | |
428 | + | } | |
429 | + | } | |
430 | + | } | |
431 | + | } | |
432 | + | } | |
433 | + | }) + "E"))) + getAmountOrClear((toString({ | |
434 | + | let $list60746105 = genotype | |
435 | + | let $size60746105 = size($list60746105) | |
436 | + | let $acc060746105 = 0 | |
437 | + | if (($size60746105 == 0)) | |
438 | + | then $acc060746105 | |
439 | + | else { | |
440 | + | let $acc160746105 = isSymbolF($acc060746105, $list60746105[0]) | |
441 | + | if (($size60746105 == 1)) | |
442 | + | then $acc160746105 | |
443 | + | else { | |
444 | + | let $acc260746105 = isSymbolF($acc160746105, $list60746105[1]) | |
445 | + | if (($size60746105 == 2)) | |
446 | + | then $acc260746105 | |
447 | + | else { | |
448 | + | let $acc360746105 = isSymbolF($acc260746105, $list60746105[2]) | |
449 | + | if (($size60746105 == 3)) | |
450 | + | then $acc360746105 | |
451 | + | else { | |
452 | + | let $acc460746105 = isSymbolF($acc360746105, $list60746105[3]) | |
453 | + | if (($size60746105 == 4)) | |
454 | + | then $acc460746105 | |
455 | + | else { | |
456 | + | let $acc560746105 = isSymbolF($acc460746105, $list60746105[4]) | |
457 | + | if (($size60746105 == 5)) | |
458 | + | then $acc560746105 | |
459 | + | else { | |
460 | + | let $acc660746105 = isSymbolF($acc560746105, $list60746105[5]) | |
461 | + | if (($size60746105 == 6)) | |
462 | + | then $acc660746105 | |
463 | + | else { | |
464 | + | let $acc760746105 = isSymbolF($acc660746105, $list60746105[6]) | |
465 | + | if (($size60746105 == 7)) | |
466 | + | then $acc760746105 | |
467 | + | else { | |
468 | + | let $acc860746105 = isSymbolF($acc760746105, $list60746105[7]) | |
469 | + | if (($size60746105 == 8)) | |
470 | + | then $acc860746105 | |
471 | + | else { | |
472 | + | let $acc960746105 = isSymbolF($acc860746105, $list60746105[8]) | |
473 | + | throw("List size exceed 8") | |
474 | + | } | |
475 | + | } | |
476 | + | } | |
477 | + | } | |
478 | + | } | |
479 | + | } | |
480 | + | } | |
481 | + | } | |
482 | + | } | |
483 | + | }) + "F"))) + getAmountOrClear((toString({ | |
484 | + | let $list61446175 = genotype | |
485 | + | let $size61446175 = size($list61446175) | |
486 | + | let $acc061446175 = 0 | |
487 | + | if (($size61446175 == 0)) | |
488 | + | then $acc061446175 | |
489 | + | else { | |
490 | + | let $acc161446175 = isSymbolG($acc061446175, $list61446175[0]) | |
491 | + | if (($size61446175 == 1)) | |
492 | + | then $acc161446175 | |
493 | + | else { | |
494 | + | let $acc261446175 = isSymbolG($acc161446175, $list61446175[1]) | |
495 | + | if (($size61446175 == 2)) | |
496 | + | then $acc261446175 | |
497 | + | else { | |
498 | + | let $acc361446175 = isSymbolG($acc261446175, $list61446175[2]) | |
499 | + | if (($size61446175 == 3)) | |
500 | + | then $acc361446175 | |
501 | + | else { | |
502 | + | let $acc461446175 = isSymbolG($acc361446175, $list61446175[3]) | |
503 | + | if (($size61446175 == 4)) | |
504 | + | then $acc461446175 | |
505 | + | else { | |
506 | + | let $acc561446175 = isSymbolG($acc461446175, $list61446175[4]) | |
507 | + | if (($size61446175 == 5)) | |
508 | + | then $acc561446175 | |
509 | + | else { | |
510 | + | let $acc661446175 = isSymbolG($acc561446175, $list61446175[5]) | |
511 | + | if (($size61446175 == 6)) | |
512 | + | then $acc661446175 | |
513 | + | else { | |
514 | + | let $acc761446175 = isSymbolG($acc661446175, $list61446175[6]) | |
515 | + | if (($size61446175 == 7)) | |
516 | + | then $acc761446175 | |
517 | + | else { | |
518 | + | let $acc861446175 = isSymbolG($acc761446175, $list61446175[7]) | |
519 | + | if (($size61446175 == 8)) | |
520 | + | then $acc861446175 | |
521 | + | else { | |
522 | + | let $acc961446175 = isSymbolG($acc861446175, $list61446175[8]) | |
523 | + | throw("List size exceed 8") | |
524 | + | } | |
525 | + | } | |
526 | + | } | |
527 | + | } | |
528 | + | } | |
529 | + | } | |
530 | + | } | |
531 | + | } | |
532 | + | } | |
533 | + | }) + "G"))) + getAmountOrClear((toString({ | |
534 | + | let $list62146245 = genotype | |
535 | + | let $size62146245 = size($list62146245) | |
536 | + | let $acc062146245 = 0 | |
537 | + | if (($size62146245 == 0)) | |
538 | + | then $acc062146245 | |
539 | + | else { | |
540 | + | let $acc162146245 = isSymbolH($acc062146245, $list62146245[0]) | |
541 | + | if (($size62146245 == 1)) | |
542 | + | then $acc162146245 | |
543 | + | else { | |
544 | + | let $acc262146245 = isSymbolH($acc162146245, $list62146245[1]) | |
545 | + | if (($size62146245 == 2)) | |
546 | + | then $acc262146245 | |
547 | + | else { | |
548 | + | let $acc362146245 = isSymbolH($acc262146245, $list62146245[2]) | |
549 | + | if (($size62146245 == 3)) | |
550 | + | then $acc362146245 | |
551 | + | else { | |
552 | + | let $acc462146245 = isSymbolH($acc362146245, $list62146245[3]) | |
553 | + | if (($size62146245 == 4)) | |
554 | + | then $acc462146245 | |
555 | + | else { | |
556 | + | let $acc562146245 = isSymbolH($acc462146245, $list62146245[4]) | |
557 | + | if (($size62146245 == 5)) | |
558 | + | then $acc562146245 | |
559 | + | else { | |
560 | + | let $acc662146245 = isSymbolH($acc562146245, $list62146245[5]) | |
561 | + | if (($size62146245 == 6)) | |
562 | + | then $acc662146245 | |
563 | + | else { | |
564 | + | let $acc762146245 = isSymbolH($acc662146245, $list62146245[6]) | |
565 | + | if (($size62146245 == 7)) | |
566 | + | then $acc762146245 | |
567 | + | else { | |
568 | + | let $acc862146245 = isSymbolH($acc762146245, $list62146245[7]) | |
569 | + | if (($size62146245 == 8)) | |
570 | + | then $acc862146245 | |
571 | + | else { | |
572 | + | let $acc962146245 = isSymbolH($acc862146245, $list62146245[8]) | |
573 | + | throw("List size exceed 8") | |
574 | + | } | |
575 | + | } | |
576 | + | } | |
577 | + | } | |
578 | + | } | |
579 | + | } | |
580 | + | } | |
581 | + | } | |
582 | + | } | |
583 | + | }) + "H"))) | |
584 | + | } | |
585 | + | ||
586 | + | ||
587 | + | @Callable(i) | |
588 | + | func startDuckBreeding () = { | |
589 | + | let firstAssetId = toBase58String(value(value(i.payments[0]).assetId)) | |
590 | + | let secondAssetId = toBase58String(value(value(i.payments[1]).assetId)) | |
591 | + | if (!(if (checkAssetInIncubator(firstAssetId)) | |
592 | + | then checkAssetInIncubator(secondAssetId) | |
593 | + | else false)) | |
594 | + | then throw("You need to attach 2 valid NFT-ducks.") | |
595 | + | else if (if ((tryGetInteger((("asset_" + firstAssetId) + "_children")) > 0)) | |
596 | + | then true | |
597 | + | else (tryGetInteger((("asset_" + secondAssetId) + "_children")) > 0)) | |
598 | + | then throw("One duck can be used for breeding only once in its lifetime.") | |
599 | + | else { | |
600 | + | let breededStatus = canBeBreeded(fromBase58String(firstAssetId), fromBase58String(secondAssetId)) | |
601 | + | if ((breededStatus != "true")) | |
602 | + | then throw(("These ducks cannot be breeded: " + breededStatus)) | |
603 | + | 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))] | |
604 | + | } | |
605 | + | } | |
606 | + | ||
607 | + | ||
608 | + | ||
609 | + | @Callable(i) | |
610 | + | func finishDuckHatching (txIdStr) = { | |
611 | + | let txId = fromBase58String(txIdStr) | |
612 | + | let processStatusKey = getProcessStatusKey(toString(i.caller), txId) | |
613 | + | let finishHeightKey = getProcessFinishHeightKey(toString(i.caller), txId) | |
614 | + | let duckIdKey = getDuckIdKey(toString(i.caller), txId) | |
615 | + | let processTxStatus = getStringValue(this, processStatusKey) | |
616 | + | let processFinishHeight = getIntegerValue(this, finishHeightKey) | |
617 | + | if ((processTxStatus == HatchingFinished)) | |
618 | + | then { | |
619 | + | let duckId = getStringValue(this, getDuckIdKey(toString(i.caller), txId)) | |
620 | + | throw(("The duck was breeded and claimed already, here is the folowing: " + duckId)) | |
621 | + | } | |
622 | + | else if ((processFinishHeight > height)) | |
623 | + | then throw((((("Breeding is not finished yet " + toString((processFinishHeight - height))) + " blocks remaining, it will take around ") + toString((processFinishHeight - height))) + " minutes")) | |
624 | + | else { | |
625 | + | let duckGen = generateDuck(txId, processFinishHeight) | |
626 | + | let farmGen = getGen(duckGen) | |
627 | + | let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}") | |
628 | + | let asset = Issue(duckGen, description, 1, 0, false, unit, processFinishHeight) | |
629 | + | let assetId = calculateAssetId(asset) | |
630 | + | let amount = (tryGetInteger(getDuckStatsKey(duckGen)) + 1) | |
631 | + | let quantities = tryGetInteger((("stats_" + farmGen) + "_quantities")) | |
632 | + | let parent1Id = tryGetString(getDuckParentKey(txId, 1)) | |
633 | + | let parent2Id = tryGetString(getDuckParentKey(txId, 2)) | |
634 | + | [StringEntry(processStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getDuckStatsKey(duckGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantities"), (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))] | |
635 | + | } | |
636 | + | } | |
637 | + | ||
638 | + | ||
639 | + | @Verifier(tx) | |
640 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
641 | + |
github/deemru/w8io/0e76f2f 53.16 ms ◑