tx · 7KfeLt5wfjUTXzGx3A2U7o5JM2rURRdTa4bKwf3QsvYd

3PR87TwfWio6HVUScSaHGMnFYkGyaVdFeqT:  -0.01400000 Waves

2021.12.20 02:31 [2906800] smart account 3PR87TwfWio6HVUScSaHGMnFYkGyaVdFeqT > SELF 0.00000000 Waves

{ "type": 13, "id": "7KfeLt5wfjUTXzGx3A2U7o5JM2rURRdTa4bKwf3QsvYd", "fee": 1400000, "feeAssetId": null, "timestamp": 1639956706840, "version": 2, "chainId": 87, "sender": "3PR87TwfWio6HVUScSaHGMnFYkGyaVdFeqT", "senderPublicKey": "DvzM1HgWkv7KTs8nozoqi2VnCgL56k1kFNgpTCYNqt9S", "proofs": [ "5X2ghZS4QYpjjYW8MZVAENw7nCgkHaMh1LGyfVEuirnc7Si3Nq8mZtmJhCmkeJrevYjj1BoaBgFZkLLerEcNS2od" ], "script": "base64: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VExFTkFNRQUAAAAHYWRkcmVzcwUAAAALbWFudGxlTmZ0SWQEAAAADWtNYW50bGVFeGlzdHMJAQAAABFrZXlBcnRlZmFjdEV4aXN0cwAAAAIFAAAACk1BTlRMRU5BTUUFAAAAC21hbnRsZU5mdElkBAAAAAxrTWFudGxlT3duZXIJAQAAABBrZXlBcnRlZmFjdE93bmVyAAAAAgUAAAAKTUFOVExFTkFNRQUAAAALbWFudGxlTmZ0SWQEAAAADWtNYW50bGVTdGF0dXMJAQAAABFrZXlBcnRlZmFjdFN0YXR1cwAAAAIFAAAACk1BTlRMRU5BTUUFAAAAC21hbnRsZU5mdElkBAAAAA1rQXJ0ZWZhY3RUeXBlCQEAAAAPa2V5QXJ0ZWZhY3RUeXBlAAAAAQUAAAALbWFudGxlTmZ0SWQEAAAAD2tNYW50bGVJbnZlc3RlZAkBAAAAE2tleUFydGVmYWN0SW52ZXN0ZWQAAAACBQAAAApNQU5UTEVOQU1FCQACWAAAAAEFAAAAC21hbnRsZU5mdElkBAAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwkBAAAAGWtleUFydGVmYWN0T3duZXJBbmRTdGF0dXMAAAADBQAAAApNQU5UTEVOQU1FBQAAAAdhZGRyZXNzBQAAAAttYW50bGVOZnRJZAQAAAASa09ubHlBcnRlZmFjdExldmVsCQEAAAAUa2V5T25seUFydGVmYWN0TGV2ZWwAAAABBQAAAAttYW50bGVOZnRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa01hbnRsZUxldmVsBQAAAAVsZXZlbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa01hbnRsZUludmVzdGVkBQAAAAhpbnZlc3RlZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAANa01hbnRsZUV4aXN0cwYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAMa01hbnRsZU93bmVyBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtNYW50bGVTdGF0dXMFAAAAClNUQVRVU0ZSRUUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAANa0FydGVmYWN0VHlwZQUAAAAKTUFOVExFTkFNRQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwUAAAAKU1RBVFVTRlJFRQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa09ubHlBcnRlZmFjdExldmVsBQAAAAVsZXZlbAUAAAADbmlsAAAAAWkBAAAAC2J1eUFydGVmYWN0AAAAAQAAAAR0eXBlAwkBAAAAAiE9AAAAAgUAAAAEdHlwZQUAAAAKTUFOVExFTkFNRQkAAAIAAAABAgAAABxZb3UgY2FuIGJ1eSBvbmx5IG1hbnRsZXMgbm93BAAAAAtNQU5UTEVQUklDRQAAAAAAAA9CQAQAAAAMZmlyc3RQYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAwkBAAAAAiE9AAAAAggFAAAADGZpcnN0UGF5bWVudAAAAAdhc3NldElkBQAAAAplZ2dBc3NldElkCQAAAgAAAAEJAAEsAAAAAgIAAAA8WW91IGNhbiBhdHRhY2ggb25seSBFR0cgdG9rZW5zIHdpdGggdGhlIGZvbGxvd2luZyBhc3NldCBpZDogCQACWAAAAAEFAAAACmVnZ0Fzc2V0SWQDCQEAAAACIT0AAAACCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAUAAAALTUFOVExFUFJJQ0UJAAACAAAAAQkAASwAAAACAgAAAERUbyBidXkgYSBtYW50bGUgeW91IGN1cnJlbnRseSBuZWVkIHRoZSBmb2xsb3dpbmcgYW1vdW50IG9mIEVHR2xldHM6IAkAAaQAAAABBQAAAAtNQU5UTEVQUklDRQQAAAAOaXNzdWVNYW50bGVORlQJAARCAAAABQIAAAANRFVDSy1NQU5UTEUtMAIAAAAgW0FydGVmYWN0XSBNYW50bGUgTkZUIGZvciBKZWR1Y2sAAAAAAAAAAAEAAAAAAAAAAAAHBAAAAAttYW50bGVOZnRJZAkABDgAAAABBQAAAA5pc3N1ZU1hbnRsZU5GVAQAAAAMa01hbnRsZUxldmVsCQEAAAAQa2V5QXJ0ZWZhY3RMZXZlbAAAAAMFAAAACk1BTlRMRU5BTUUJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAttYW50bGVOZnRJZAQAAAANa01hbnRsZUV4aXN0cwkBAAAAEWtleUFydGVmYWN0RXhpc3RzAAAAAgUAAAAKTUFOVExFTkFNRQUAAAALbWFudGxlTmZ0SWQEAAAADGtNYW50bGVPd25lcgkBAAAAEGtleUFydGVmYWN0T3duZXIAAAACBQAAAApNQU5UTEVOQU1FBQAAAAttYW50bGVOZnRJZAQAAAANa01hbnRsZVN0YXR1cwkBAAAAEWtleUFydGVmYWN0U3RhdHVzAAAAAgUAAAAKTUFOVExFTkFNRQUAAAALbWFudGxlTmZ0SWQEAAAADWtBcnRlZmFjdFR5cGUJAQAAAA9rZXlBcnRlZmFjdFR5cGUAAAABBQAAAAttYW50bGVOZnRJZAQAAAAPa01hbnRsZUludmVzdGVkCQEAAAATa2V5QXJ0ZWZhY3RJbnZlc3RlZAAAAAIFAAAACk1BTlRMRU5BTUUJAAJYAAAAAQUAAAALbWFudGxlTmZ0SWQEAAAAF2tBcnRlZmFjdE93bmVyQW5kU3RhdHVzCQEAAAAZa2V5QXJ0ZWZhY3RPd25lckFuZFN0YXR1cwAAAAMFAAAACk1BTlRMRU5BTUUJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAttYW50bGVOZnRJZAQAAAASa09ubHlBcnRlZmFjdExldmVsCQEAAAAUa2V5T25seUFydGVmYWN0TGV2ZWwAAAABBQAAAAttYW50bGVOZnRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa01hbnRsZUxldmVsAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rTWFudGxlSW52ZXN0ZWQFAAAAC01BTlRMRVBSSUNFCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAA1rTWFudGxlRXhpc3RzBgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAxrTWFudGxlT3duZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtNYW50bGVTdGF0dXMFAAAAClNUQVRVU0ZSRUUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAANa0FydGVmYWN0VHlwZQUAAAAKTUFOVExFTkFNRQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwUAAAAKU1RBVFVTRlJFRQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa09ubHlBcnRlZmFjdExldmVsAAAAAAAAAAABBQAAAANuaWwAAAABaQEAAAANdXBncmFkZU1hbnRsZQAAAAEAAAAKYXJ0ZWZhY3RJZAQAAAARdXBncmFkZVBvaW50UHJpY2UAAAAAAAAPQkAEAAAADGZpcnN0UGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAxmaXJzdFBheW1lbnQAAAAHYXNzZXRJZAUAAAAKZWdnQXNzZXRJZAkAAAIAAAABCQABLAAAAAICAAAAPFlvdSBjYW4gYXR0YWNoIG9ubHkgRUdHIHRva2VucyB3aXRoIHRoZSBmb2xsb3dpbmcgYXNzZXQgaWQ6IAkAAlgAAAABBQAAAAplZ2dBc3NldElkAwkAAGYAAAACBQAAABF1cGdyYWRlUG9pbnRQcmljZQgFAAAADGZpcnN0UGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACAgAAAClNaW5pbWFsIHBheW1lbnQgZm9yIHVwZ3JhZGluZyBtYW50bGUgaXM6IAkAAaQAAAABBQAAABF1cGdyYWRlUG9pbnRQcmljZQQAAAANa01hbnRsZUV4aXN0cwkBAAAAEWtleUFydGVmYWN0RXhpc3RzAAAAAgUAAAAKTUFOVExFTkFNRQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAAxrTWFudGxlT3duZXIJAQAAABBrZXlBcnRlZmFjdE93bmVyAAAAAgUAAAAKTUFOVExFTkFNRQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAAxtYW50bGVFeGlzdHMJAQAAABFAZXh0ck5hdGl2ZSgxMDU2KQAAAAEFAAAADWtNYW50bGVFeGlzdHMEAAAAC21hbnRsZU93bmVyCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABBQAAAAxrTWFudGxlT3duZXIDCQEAAAABIQAAAAEFAAAADG1hbnRsZUV4aXN0cwkAAAIAAAABAgAAACVNYW50bGUgd2l0aCBzdWNoIGFuIElEIGRvZXMgbm90IGV4aXN0AwkBAAAAAiE9AAAAAgUAAAALbWFudGxlT3duZXIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQAAAgAAAAECAAAAIVlvdSdyZSBub3QgYW4gb3duZXIgb2YgdGhlIG1hbnRsZQQAAAAPa01hbnRsZUludmVzdGVkCQEAAAATa2V5QXJ0ZWZhY3RJbnZlc3RlZAAAAAIFAAAACk1BTlRMRU5BTUUFAAAACmFydGVmYWN0SWQEAAAAFW1hbnRsZUFscmVhZHlJbnZlc3RlZAkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQUAAAAPa01hbnRsZUludmVzdGVkBAAAAAxrTWFudGxlTGV2ZWwJAQAAABBrZXlBcnRlZmFjdExldmVsAAAAAwUAAAAKTUFOVExFTkFNRQkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAASa09ubHlBcnRlZmFjdExldmVsCQEAAAAUa2V5T25seUFydGVmYWN0TGV2ZWwAAAABCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAADXRvdGFsSW52ZXN0ZWQJAABkAAAAAgUAAAAVbWFudGxlQWxyZWFkeUludmVzdGVkCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAQAAAAIbmV3TGV2ZWwJAABpAAAAAgkAAGQAAAACCQAAaAAAAAIAAAAAAAAAAAoJAABsAAAABgUAAAANdG90YWxJbnZlc3RlZAAAAAAAAAAACAAAAAAAAAAABgAAAAAAAAAAAQAAAAAAAAAACAUAAAAGSEFMRlVQAAAAAAAF9eEAAAAAAAAF9eEACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrTWFudGxlTGV2ZWwFAAAACG5ld0xldmVsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rTWFudGxlSW52ZXN0ZWQFAAAADXRvdGFsSW52ZXN0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtPbmx5QXJ0ZWZhY3RMZXZlbAUAAAAIbmV3TGV2ZWwFAAAAA25pbAAAAAFpAQAAAA1wdXRPbkFydGVmYWN0AAAAAQAAAAphcnRlZmFjdElkBAAAAAxmaXJzdFBheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAEWF0dGFjaGVkQXNzZXRJbmZvCQEAAAAFdmFsdWUAAAABCQAD7AAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAxmaXJzdFBheW1lbnQAAAAHYXNzZXRJZAMDCQEAAAACIT0AAAACCAgFAAAAEWF0dGFjaGVkQXNzZXRJbmZvAAAABmlzc3VlcgAAAAVieXRlcwUAAAARaW5jdWJhdG9yQ29udHJhY3QJAQAAAAIhPQAAAAIICAUAAAARYXR0YWNoZWRBc3NldEluZm8AAAAGaXNzdWVyAAAABWJ5dGVzBQAAAA9icmVlZGVyQ29udHJhY3QHCQAAAgAAAAECAAAAOVlvdSBjYW4gYXR0YWNoIG9ubHkgRFVDS3MgaXNzdWVkIGJ5IGluY3ViYXRvciBvciBicmVlZGVyIAQAAAANa01hbnRsZUV4aXN0cwkBAAAAEWtleUFydGVmYWN0RXhpc3RzAAAAAgUAAAAKTUFOVExFTkFNRQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAAxrTWFudGxlT3duZXIJAQAAABBrZXlBcnRlZmFjdE93bmVyAAAAAgUAAAAKTUFOVExFTkFNRQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAA1rTWFudGxlU3RhdHVzCQEAAAARa2V5QXJ0ZWZhY3RTdGF0dXMAAAACBQAAAApNQU5UTEVOQU1FCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAAF2tBcnRlZmFjdE93bmVyQW5kU3RhdHVzCQEAAAAZa2V5QXJ0ZWZhY3RPd25lckFuZFN0YXR1cwAAAAMFAAAACk1BTlRMRU5BTUUJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAACWtEdWNrTG9jawkBAAAAC2tleUR1Y2tMb2NrAAAAAgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgFAAAADGZpcnN0UGF5bWVudAAAAAdhc3NldElkBAAAAAxtYW50bGVFeGlzdHMJAQAAABFAZXh0ck5hdGl2ZSgxMDU2KQAAAAEFAAAADWtNYW50bGVFeGlzdHMEAAAAC21hbnRsZU93bmVyCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABBQAAAAxrTWFudGxlT3duZXIEAAAADG1hbnRsZVN0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQUAAAANa01hbnRsZVN0YXR1cwQAAAARa0FydGVmYWN0SWRCeVR5cGUJAQAAABprZXlBcnRlZmFjdElkQnlEdWNrQW5kVHlwZQAAAAIFAAAACk1BTlRMRU5BTUUJAQAAAAV2YWx1ZQAAAAEIBQAAAAxmaXJzdFBheW1lbnQAAAAHYXNzZXRJZAMJAQAAAAEhAAAAAQUAAAAMbWFudGxlRXhpc3RzCQAAAgAAAAECAAAAJU1hbnRsZSB3aXRoIHN1Y2ggYW4gSUQgZG9lcyBub3QgZXhpc3QDCQEAAAACIT0AAAACBQAAAAttYW50bGVPd25lcgkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAAACAAAAAQIAAAAhWW91J3JlIG5vdCBhbiBvd25lciBvZiB0aGUgbWFudGxlAwkBAAAAAiE9AAAAAgUAAAAMbWFudGxlU3RhdHVzBQAAAApTVEFUVVNGUkVFCQAAAgAAAAECAAAAF01hbnRsZSBpcyBhbHJlYWR5IHVzZWQhBAAAAA5rUHV0T25BcnRlZmFjdAkBAAAAEGtleVB1dE9uQXJ0ZWZhY3QAAAAEBQAAAApNQU5UTEVOQU1FCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAOa1B1dE9uQXJ0ZWZhY3QGCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtNYW50bGVTdGF0dXMFAAAADlNUQVRVU09DQ1VQSUVECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAF2tBcnRlZmFjdE93bmVyQW5kU3RhdHVzBQAAAA5TVEFUVVNPQ0NVUElFRAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa0R1Y2tMb2NrBgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABFrQXJ0ZWZhY3RJZEJ5VHlwZQUAAAAKYXJ0ZWZhY3RJZAUAAAADbmlsAAAAAWkBAAAAD3Rha2VPZmZBcnRlZmFjdAAAAAIAAAAGZHVja0lkAAAADGFydGVmYWN0VHlwZQQAAAAYa0FydGVmYWN0SWRCeVR5cGVBbmREdWNrCQEAAAAaa2V5QXJ0ZWZhY3RJZEJ5RHVja0FuZFR5cGUAAAACBQAAAAxhcnRlZmFjdFR5cGUJAAJZAAAAAQUAAAAGZHVja0lkBAAAAAphcnRlZmFjdElkCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABBQAAABhrQXJ0ZWZhY3RJZEJ5VHlwZUFuZER1Y2sEAAAADWtBcnRlZmFjdFR5cGUJAQAAAA9rZXlBcnRlZmFjdFR5cGUAAAABCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAADmtQdXRPbkFydGVmYWN0CQEAAAAQa2V5UHV0T25BcnRlZmFjdAAAAAQFAAAADGFydGVmYWN0VHlwZQkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIFAAAABmR1Y2tJZAkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAABRrUHV0T25BcnRlZmFjdFN0YXR1cwkBAAAAEUBleHRyTmF0aXZlKDEwNTYpAAAAAQUAAAAOa1B1dE9uQXJ0ZWZhY3QEAAAAF2tBcnRlZmFjdE93bmVyQW5kU3RhdHVzCQEAAAAZa2V5QXJ0ZWZhY3RPd25lckFuZFN0YXR1cwAAAAMFAAAADGFydGVmYWN0VHlwZQkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAJa0R1Y2tMb2NrCQEAAAALa2V5RHVja0xvY2sAAAACCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAAGZHVja0lkBAAAAA1rTWFudGxlU3RhdHVzCQEAAAARa2V5QXJ0ZWZhY3RTdGF0dXMAAAACBQAAAAxhcnRlZmFjdFR5cGUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAMJAQAAAAIhPQAAAAIFAAAAFGtQdXRPbkFydGVmYWN0U3RhdHVzBgkAAAIAAAABAgAAACZUaGVyZSBpcyBubyBkdWNrIHdpdGggc3VjaCBwYXJhbWV0ZXJlcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAA5rUHV0T25BcnRlZmFjdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAABhrQXJ0ZWZhY3RJZEJ5VHlwZUFuZER1Y2sJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAJa0R1Y2tMb2NrCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtNYW50bGVTdGF0dXMFAAAAClNUQVRVU0ZSRUUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAXa0FydGVmYWN0T3duZXJBbmRTdGF0dXMFAAAAClNUQVRVU0ZSRUUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAABmR1Y2tJZAUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmGVJ+J", "height": 2906800, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: zBNcjyiSv41oZe74DzDyMSjN3gsFsVz4XfZc8tKeiJF Next: J9BgLH1DoCgCd8fhn2zh23oHVywysoaG8RfM8PtrbKd9 Diff:
OldNewDifferences
1616 let STATUSOCCUPIED = "OCCUPIED"
1717
1818 func keyDuckLock (callerAddress,duckId) = (((("address_" + callerAddress) + "_duck_") + duckId) + "_status")
19+
20+
21+func keyInvestor (callerAddress) = (("address_" + callerAddress) + "_amount")
1922
2023
2124 func keyArtefactInvested (type,artefactId) = (((("artefact_" + type) + "_artefactId_") + artefactId) + "_invested")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let breederContract = base58'3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb'
55
66 let incubatorContract = base58'3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv'
77
88 let swopPromoContract = base58'3P6s9C39Ak5FAQ3F5VapYJ3ULxgbsAReXWD'
99
1010 let eggAssetId = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
1111
1212 let MANTLENAME = "mantle"
1313
1414 let STATUSFREE = "FREE"
1515
1616 let STATUSOCCUPIED = "OCCUPIED"
1717
1818 func keyDuckLock (callerAddress,duckId) = (((("address_" + callerAddress) + "_duck_") + duckId) + "_status")
19+
20+
21+func keyInvestor (callerAddress) = (("address_" + callerAddress) + "_amount")
1922
2023
2124 func keyArtefactInvested (type,artefactId) = (((("artefact_" + type) + "_artefactId_") + artefactId) + "_invested")
2225
2326
2427 func keyOnlyArtefactLevel (artefactId) = (("artefactId_" + toBase58String(artefactId)) + "_level")
2528
2629
2730 func keyArtefactIdByDuckAndType (type,duckId) = (((("artefact_ " + type) + "_duck_") + toBase58String(duckId)) + "_artefactId")
2831
2932
3033 func keyArtefactOwner (type,artefactId) = (((("artefact_ " + type) + "_artefactId_") + toBase58String(artefactId)) + "_owner")
3134
3235
3336 func keyArtefactOwnerAndStatus (type,owner,artefactId) = (((((("address_" + owner) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
3437
3538
3639 func keyArtefactStatus (type,artefactId) = (((("artefact_ " + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
3740
3841
3942 func keyArtefactType (artefactId) = (("artefactId_" + toBase58String(artefactId)) + "_type")
4043
4144
4245 func keyArtefactLevel (type,owner,artefactId) = (((((("address_" + owner) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_level")
4346
4447
4548 func keyPutOnArtefact (type,owner,duckId,artefactId) = (((((((("address_" + owner) + "_duck_") + duckId) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
4649
4750
4851 func keyArtefactExists (type,artefactId) = ((("artefact_" + type) + "_artefactId_") + toBase58String(artefactId))
4952
5053
5154 @Callable(i)
5255 func issueFreeMantle (address,type,level,invested) = if (if ((i.caller != this))
5356 then (i.caller != Address(swopPromoContract))
5457 else false)
5558 then throw("Can be called only by admin")
5659 else if ((type != MANTLENAME))
5760 then throw("You can buy only mantles now")
5861 else {
5962 let issueMantleNFT = Issue("DUCK-MANTLE-0", "[Artefact] Mantle NFT for Jeduck", 1, 0, false)
6063 let mantleNftId = calculateAssetId(issueMantleNFT)
6164 let kMantleLevel = keyArtefactLevel(MANTLENAME, address, mantleNftId)
6265 let kMantleExists = keyArtefactExists(MANTLENAME, mantleNftId)
6366 let kMantleOwner = keyArtefactOwner(MANTLENAME, mantleNftId)
6467 let kMantleStatus = keyArtefactStatus(MANTLENAME, mantleNftId)
6568 let kArtefactType = keyArtefactType(mantleNftId)
6669 let kMantleInvested = keyArtefactInvested(MANTLENAME, toBase58String(mantleNftId))
6770 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, address, mantleNftId)
6871 let kOnlyArtefactLevel = keyOnlyArtefactLevel(mantleNftId)
6972 [IntegerEntry(kMantleLevel, level), IntegerEntry(kMantleInvested, invested), BooleanEntry(kMantleExists, true), StringEntry(kMantleOwner, address), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactType, MANTLENAME), StringEntry(kArtefactOwnerAndStatus, STATUSFREE), IntegerEntry(kOnlyArtefactLevel, level)]
7073 }
7174
7275
7376
7477 @Callable(i)
7578 func buyArtefact (type) = if ((type != MANTLENAME))
7679 then throw("You can buy only mantles now")
7780 else {
7881 let MANTLEPRICE = 1000000
7982 let firstPayment = value(i.payments[0])
8083 if ((firstPayment.assetId != eggAssetId))
8184 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggAssetId)))
8285 else if ((firstPayment.amount != MANTLEPRICE))
8386 then throw(("To buy a mantle you currently need the following amount of EGGlets: " + toString(MANTLEPRICE)))
8487 else {
8588 let issueMantleNFT = Issue("DUCK-MANTLE-0", "[Artefact] Mantle NFT for Jeduck", 1, 0, false)
8689 let mantleNftId = calculateAssetId(issueMantleNFT)
8790 let kMantleLevel = keyArtefactLevel(MANTLENAME, toString(i.caller), mantleNftId)
8891 let kMantleExists = keyArtefactExists(MANTLENAME, mantleNftId)
8992 let kMantleOwner = keyArtefactOwner(MANTLENAME, mantleNftId)
9093 let kMantleStatus = keyArtefactStatus(MANTLENAME, mantleNftId)
9194 let kArtefactType = keyArtefactType(mantleNftId)
9295 let kMantleInvested = keyArtefactInvested(MANTLENAME, toBase58String(mantleNftId))
9396 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, toString(i.caller), mantleNftId)
9497 let kOnlyArtefactLevel = keyOnlyArtefactLevel(mantleNftId)
9598 [IntegerEntry(kMantleLevel, 1), IntegerEntry(kMantleInvested, MANTLEPRICE), BooleanEntry(kMantleExists, true), StringEntry(kMantleOwner, toString(i.caller)), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactType, MANTLENAME), StringEntry(kArtefactOwnerAndStatus, STATUSFREE), IntegerEntry(kOnlyArtefactLevel, 1)]
9699 }
97100 }
98101
99102
100103
101104 @Callable(i)
102105 func upgradeMantle (artefactId) = {
103106 let upgradePointPrice = 1000000
104107 let firstPayment = value(i.payments[0])
105108 if ((firstPayment.assetId != eggAssetId))
106109 then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggAssetId)))
107110 else if ((upgradePointPrice > firstPayment.amount))
108111 then throw(("Minimal payment for upgrading mantle is: " + toString(upgradePointPrice)))
109112 else {
110113 let kMantleExists = keyArtefactExists(MANTLENAME, fromBase58String(artefactId))
111114 let kMantleOwner = keyArtefactOwner(MANTLENAME, fromBase58String(artefactId))
112115 let mantleExists = getBooleanValue(kMantleExists)
113116 let mantleOwner = getStringValue(kMantleOwner)
114117 if (!(mantleExists))
115118 then throw("Mantle with such an ID does not exist")
116119 else if ((mantleOwner != toString(i.originCaller)))
117120 then throw("You're not an owner of the mantle")
118121 else {
119122 let kMantleInvested = keyArtefactInvested(MANTLENAME, artefactId)
120123 let mantleAlreadyInvested = getIntegerValue(kMantleInvested)
121124 let kMantleLevel = keyArtefactLevel(MANTLENAME, toString(i.originCaller), fromBase58String(artefactId))
122125 let kOnlyArtefactLevel = keyOnlyArtefactLevel(fromBase58String(artefactId))
123126 let totalInvested = (mantleAlreadyInvested + firstPayment.amount)
124127 let newLevel = (((10 * pow(totalInvested, 8, 6, 1, 8, HALFUP)) + 100000000) / 100000000)
125128 [IntegerEntry(kMantleLevel, newLevel), IntegerEntry(kMantleInvested, totalInvested), IntegerEntry(kOnlyArtefactLevel, newLevel)]
126129 }
127130 }
128131 }
129132
130133
131134
132135 @Callable(i)
133136 func putOnArtefact (artefactId) = {
134137 let firstPayment = value(i.payments[0])
135138 let attachedAssetInfo = value(assetInfo(value(firstPayment.assetId)))
136139 if (if ((attachedAssetInfo.issuer.bytes != incubatorContract))
137140 then (attachedAssetInfo.issuer.bytes != breederContract)
138141 else false)
139142 then throw("You can attach only DUCKs issued by incubator or breeder ")
140143 else {
141144 let kMantleExists = keyArtefactExists(MANTLENAME, fromBase58String(artefactId))
142145 let kMantleOwner = keyArtefactOwner(MANTLENAME, fromBase58String(artefactId))
143146 let kMantleStatus = keyArtefactStatus(MANTLENAME, fromBase58String(artefactId))
144147 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, toString(i.originCaller), fromBase58String(artefactId))
145148 let kDuckLock = keyDuckLock(toString(i.originCaller), toBase58String(value(firstPayment.assetId)))
146149 let mantleExists = getBooleanValue(kMantleExists)
147150 let mantleOwner = getStringValue(kMantleOwner)
148151 let mantleStatus = getStringValue(kMantleStatus)
149152 let kArtefactIdByType = keyArtefactIdByDuckAndType(MANTLENAME, value(firstPayment.assetId))
150153 if (!(mantleExists))
151154 then throw("Mantle with such an ID does not exist")
152155 else if ((mantleOwner != toString(i.originCaller)))
153156 then throw("You're not an owner of the mantle")
154157 else if ((mantleStatus != STATUSFREE))
155158 then throw("Mantle is already used!")
156159 else {
157160 let kPutOnArtefact = keyPutOnArtefact(MANTLENAME, toString(i.originCaller), toBase58String(value(firstPayment.assetId)), fromBase58String(artefactId))
158161 [BooleanEntry(kPutOnArtefact, true), StringEntry(kMantleStatus, STATUSOCCUPIED), StringEntry(kArtefactOwnerAndStatus, STATUSOCCUPIED), BooleanEntry(kDuckLock, true), StringEntry(kArtefactIdByType, artefactId)]
159162 }
160163 }
161164 }
162165
163166
164167
165168 @Callable(i)
166169 func takeOffArtefact (duckId,artefactType) = {
167170 let kArtefactIdByTypeAndDuck = keyArtefactIdByDuckAndType(artefactType, fromBase58String(duckId))
168171 let artefactId = getStringValue(kArtefactIdByTypeAndDuck)
169172 let kArtefactType = keyArtefactType(fromBase58String(artefactId))
170173 let kPutOnArtefact = keyPutOnArtefact(artefactType, toString(i.originCaller), duckId, fromBase58String(artefactId))
171174 let kPutOnArtefactStatus = getBooleanValue(kPutOnArtefact)
172175 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(artefactType, toString(i.originCaller), fromBase58String(artefactId))
173176 let kDuckLock = keyDuckLock(toString(i.originCaller), duckId)
174177 let kMantleStatus = keyArtefactStatus(artefactType, fromBase58String(artefactId))
175178 if ((kPutOnArtefactStatus != true))
176179 then throw("There is no duck with such parameteres")
177180 else [DeleteEntry(kPutOnArtefact), DeleteEntry(kArtefactIdByTypeAndDuck), DeleteEntry(kDuckLock), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactOwnerAndStatus, STATUSFREE), ScriptTransfer(i.originCaller, 1, fromBase58String(duckId))]
178181 }
179182
180183
181184 @Verifier(tx)
182185 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
183186

github/deemru/w8io/3ef1775 
52.97 ms