tx · DX1uyvH5qLiewfxztC8VrWfcsaKowU1u1BGNKXkUSkFJ

3PR87TwfWio6HVUScSaHGMnFYkGyaVdFeqT:  -0.01800000 Waves

2022.12.09 11:05 [3418009] smart account 3PR87TwfWio6HVUScSaHGMnFYkGyaVdFeqT > SELF 0.00000000 Waves

{ "type": 13, "id": "DX1uyvH5qLiewfxztC8VrWfcsaKowU1u1BGNKXkUSkFJ", "fee": 1800000, "feeAssetId": null, "timestamp": 1670573157977, "version": 2, "chainId": 87, "sender": "3PR87TwfWio6HVUScSaHGMnFYkGyaVdFeqT", "senderPublicKey": "DvzM1HgWkv7KTs8nozoqi2VnCgL56k1kFNgpTCYNqt9S", "proofs": [ "41hGVtTfecbey2F7bXqoxzt11mJmeS95exXrnmN1FBMdEyAdiwY9odwfmE9wMJ89x6ogq2ctgUTZ8W5DCKvwArSN" ], "script": "base64:AAIFAAAAAAAAACkIAhIDCgEIEgUKAwgIARIDCgEIEgMKAQgSBAoCCAESAwoBCBIECgIICAAAAB4BAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAECAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAVc3RhdGljX2JyZWVkZXJBZGRyZXNzAQAAABNnZXRJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAATZ2V0U3dvcFByb21vQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAXc3RhdGljX3N3b3BQcm9tb0FkZHJlc3MBAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABFzdGF0aWNfZWdnQXNzZXRJZAEAAAATZ2V0V2VhcmFibGVzQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAIAAAAXc3RhdGljX3dlYXJhYmxlc0FkZHJlc3MBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfZmFybWluZ0FkZHJlc3MBAAAAEWdldENvdXBvbnNBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfY291cG9uc0FkZHJlc3MBAAAAEWdldFJlYmlydGhBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABVzdGF0aWNfcmViaXJ0aEFkZHJlc3MBAAAADmdldEJ1cm5BZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABJzdGF0aWNfYnVybkFkZHJlc3MAAAAACk1BTlRMRU5BTUUCAAAABm1hbnRsZQAAAAAKU1RBVFVTRlJFRQIAAAAERlJFRQAAAAAOU1RBVFVTT0NDVVBJRUQCAAAACE9DQ1VQSUVEAQAAAAtrZXlEdWNrTG9jawAAAAIAAAANY2FsbGVyQWRkcmVzcwAAAAZkdWNrSWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAADWNhbGxlckFkZHJlc3MCAAAABl9kdWNrXwUAAAAGZHVja0lkAgAAAAdfc3RhdHVzAQAAAAtrZXlJbnZlc3RvcgAAAAEAAAANY2FsbGVyQWRkcmVzcwkA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AAAAAAAAAAABAgAAAAFVAQAAAAVhc0ludAAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAHldBSTogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEAAAARdXBncmFkZU1hbnRsZUZ1bmMAAAADAAAAAWkAAAAKYXJ0ZWZhY3RJZAAAAAZhbW91bnQEAAAADWtNYW50bGVFeGlzdHMJAQAAABFrZXlBcnRlZmFjdEV4aXN0cwAAAAIFAAAACk1BTlRMRU5BTUUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAMa01hbnRsZU93bmVyCQEAAAAQa2V5QXJ0ZWZhY3RPd25lcgAAAAIFAAAACk1BTlRMRU5BTUUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAMbWFudGxlRXhpc3RzCQEAAAARQGV4dHJOYXRpdmUoMTA1NikAAAABBQAAAA1rTWFudGxlRXhpc3RzBAAAAAttYW50bGVPd25lcgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQUAAAAMa01hbnRsZU93bmVyAwkBAAAAASEAAAABBQAAAAxtYW50bGVFeGlzdHMJAAACAAAAAQIAAAArV1VQTTogTWFudGxlIHdpdGggc3VjaCBhbiBJRCBkb2VzIG5vdCBleGlzdAMJAQAAAAIhPQAAAAIFAAAAC21hbnRsZU93bmVyCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkAAAIAAAABAgAAACdXVVBNOiBZb3UncmUgbm90IGFuIG93bmVyIG9mIHRoZSBtYW50bGUEAAAAD2tNYW50bGVJbnZlc3RlZAkBAAAAE2tleUFydGVmYWN0SW52ZXN0ZWQAAAACBQAAAApNQU5UTEVOQU1FBQAAAAphcnRlZmFjdElkBAAAABVtYW50bGVBbHJlYWR5SW52ZXN0ZWQJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAD2tNYW50bGVJbnZlc3RlZAQAAAAMa01hbnRsZUxldmVsCQEAAAAQa2V5QXJ0ZWZhY3RMZXZlbAAAAAMFAAAACk1BTlRMRU5BTUUJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAAEmtPbmx5QXJ0ZWZhY3RMZXZlbAkBAAAAFGtleU9ubHlBcnRlZmFjdExldmVsAAAAAQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAA10b3RhbEludmVzdGVkCQAAZAAAAAIFAAAAFW1hbnRsZUFscmVhZHlJbnZlc3RlZAUAAAAGYW1vdW50BAAAAAhuZXdMZXZlbAkAAGkAAAACCQAAZAAAAAIJAABoAAAAAgAAAAAAAAAACgkAAGwAAAAGBQAAAA10b3RhbEludmVzdGVkAAAAAAAAAAAIAAAAAAAAAAAGAAAAAAAAAAABAAAAAAAAAAAIBQAAAAZIQUxGVVAAAAAAAAX14QAAAAAAAAX14QADCQAAZwAAAAIFAAAACG5ld0xldmVsAAAAAAAAAAFUCQAAAgAAAAECAAAAMkRVTUY6IFlvdSByZWFjaGVkIHRoZSBtYXggbGV2ZWwhIE1heCBsZXZlbCBpcyAzNDAhCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrTWFudGxlTGV2ZWwFAAAACG5ld0xldmVsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rTWFudGxlSW52ZXN0ZWQFAAAADXRvdGFsSW52ZXN0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtPbmx5QXJ0ZWZhY3RMZXZlbAUAAAAIbmV3TGV2ZWwFAAAAA25pbAAAAAcAAAABaQEAAAAPY29uZmlndXJlT3JhY2xlAAAAAQAAAAZvcmFjbGUDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAPV0NPOiBhZG1pbiBvbmx5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAFHN0YXRpY19vcmFjbGVBZGRyZXNzBQAAAAZvcmFjbGUFAAAAA25pbAAAAAFpAQAAAA9pc3N1ZUZyZWVNYW50bGUAAAADAAAAB2FkZHJlc3MAAAAEdHlwZQAAAAVsZXZlbAMDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgkBAAAAE2dldFN3b3BQcm9tb0FkZHJlc3MAAAAABwkAAAIAAAABAgAAACFXSUZNOiBDYW4gYmUgY2FsbGVkIG9ubHkgYnkgYWRtaW4DCQEAAAACIT0AAAACBQAAAAR0eXBlBQAAAApNQU5UTEVOQU1FCQAAAgAAAAECAAAAIldJRk06IFlvdSBjYW4gYnV5IG9ubHkgbWFudGxlcyBub3cEAAAADmlzc3VlTWFudGxlTkZUCQAEQgAAAAUCAAAADURVQ0stTUFOVExFLTACAAAAIFtBcnRlZmFjdF0gTWFudGxlIE5GVCBmb3IgSmVkdWNrAAAAAAAAAAABAAAAAAAAAAAABwQAAAALbWFudGxlTmZ0SWQJAAQ4AAAAAQUAAAAOaXNzdWVNYW50bGVORlQEAAAADGtNYW50bGVMZXZlbAkBAAAAEGtleUFydGVmYWN0TGV2ZWwAAAADBQAAAApNQU5UTEVOQU1FBQAAAAdhZGRyZXNzBQAAAAttYW50bGVOZnRJZAQAAAANa01hbnRsZUV4aXN0cwkBAAAAEWtleUFydGVmYWN0RXhpc3RzAAAAAgUAAAAKTUFOVExFTkFNRQUAAAALbWFudGxlTmZ0SWQEAAAADGtNYW50bGVPd25lcgkBAAAAEGtleUFydGVmYWN0T3duZXIAAAACBQAAAApNQU5UTEVOQU1FBQAAAAttYW50bGVOZnRJZAQAAAANa01hbnRsZVN0YXR1cwkBAAAAEWtleUFydGVmYWN0U3RhdHVzAAAAAgUAAAAKTUFOVExFTkFNRQUAAAALbWFudGxlTmZ0SWQEAAAADWtBcnRlZmFjdFR5cGUJAQAAAA9rZXlBcnRlZmFjdFR5cGUAAAABBQAAAAttYW50bGVOZnRJZAQAAAAPa01hbnRsZUludmVzdGVkCQEAAAATa2V5QXJ0ZWZhY3RJbnZlc3RlZAAAAAIFAAAACk1BTlRMRU5BTUUJAAJYAAAAAQUAAAALbWFudGxlTmZ0SWQEAAAAF2tBcnRlZmFjdE93bmVyQW5kU3RhdHVzCQEAAAAZa2V5QXJ0ZWZhY3RPd25lckFuZFN0YXR1cwAAAAMFAAAACk1BTlRMRU5BTUUFAAAAB2FkZHJlc3MFAAAA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bAkAA/wAAAAECQEAAAAOZ2V0QnVybkFkZHJlc3MAAAAAAgAAABRidXJuQXR0YWNoZWRQYXltZW50cwUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCQEAAAANZ2V0RWdnQXNzZXRJZAAAAAAIBQAAAAxmaXJzdFBheW1lbnQAAAAGYW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAACGJ1cm5DYWxsBQAAAAhidXJuQ2FsbAgFAAAADGZpcnN0UGF5bWVudAAAAAZhbW91bnQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAAAAAAAAAwkAAGYAAAACBQAAABF1cGdyYWRlUG9pbnRQcmljZQkAAGQAAAACBQAAAA1jb3Vwb25zQW1vdW50BQAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACAgAAADBXVU1CQzogTWluaW1hbCBwYXltZW50IGZvciB1cGdyYWRpbmcgbWFudGxlIGlzOiAJAAGkAAAAAQUAAAARdXBncmFkZVBvaW50UHJpY2UEAAAAE2Ftb3VudFBhaWRCeUNvdXBvbnMJAQAAAAVhc0ludAAAAAEJAAP8AAAABAkBAAAAEWdldENvdXBvbnNBZGRyZXNzAAAAAAIAAAAKdXNlQ291cG9ucwkABEwAAAACBQAAAA1jb3Vwb25zQW1vdW50BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAATYW1vdW50UGFpZEJ5Q291cG9ucwUAAAATYW1vdW50UGFpZEJ5Q291cG9ucwMJAQAAAAIhPQAAAAIFAAAADWNvdXBvbnNBbW91bnQFAAAAE2Ftb3VudFBhaWRCeUNvdXBvbnMJAAACAAAAAQIAAABIV1VNQkM6IE5vdCBlbm91Z2ggY291cG9ucyEgUGxlYXNlIG1ha2Ugc3VyZSB0byBwaWNrIGxvd2VyIGNvdXBvbiBhbW91bnQhCQEAAAARdXBncmFkZU1hbnRsZUZ1bmMAAAADBQAAAAFpBQAAAAphcnRlZmFjdElkCQAAZAAAAAIFAAAADWNvdXBvbnNBbW91bnQFAAAABmFtb3VudAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAANcHV0T25BcnRlZmFjdAAAAAEAAAAKYXJ0ZWZhY3RJZAQAAAAMZmlyc3RQYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAABFhdHRhY2hlZEFzc2V0SW5mbwkBAAAABXZhbHVlAAAAAQkAA+wAAAABCQEAAAAFdmFsdWUAAAABCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQDCQEAAAACIT0AAAACCAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAAAAAAAAAAAAQkAAAIAAAABAgAAABlXUE9BOiBORlQgaXMgbm90IGF0dGFjaGVkAwMJAQAAAAIhPQAAAAIIBQAAABFhdHRhY2hlZEFzc2V0SW5mbwAAAAZpc3N1ZXIJAQAAABNnZXRJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAAiE9AAAAAggFAAAAEWF0dGFjaGVkQXNzZXRJbmZvAAAABmlzc3VlcgkBAAAAEWdldEJyZWVkZXJBZGRyZXNzAAAAAAcJAAACAAAAAQIAAAA/V1BPQTogWW91IGNhbiBhdHRhY2ggb25seSBEVUNLcyBpc3N1ZWQgYnkgaW5jdWJhdG9yIG9yIGJyZWVkZXIgBAAAAApoYXNTd2VhdGVyCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAATZ2V0V2VhcmFibGVzQWRkcmVzcwAAAAAJAAEsAAAAAgkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQCAAAADV9BUlQtWFNXRUFURVIEAAAADWtNYW50bGVFeGlzdHMJAQAAABFrZXlBcnRlZmFjdEV4aXN0cwAAAAIFAAAACk1BTlRMRU5BTUUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAMa01hbnRsZU93bmVyCQEAAAAQa2V5QXJ0ZWZhY3RPd25lcgAAAAIFAAAACk1BTlRMRU5BTUUJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAANa01hbnRsZVN0YXR1cwkBAAAAEWtleUFydGVmYWN0U3RhdHVzAAAAAgUAAAAKTUFOVExFTkFNRQkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwkBAAAAGWtleUFydGVmYWN0T3duZXJBbmRTdGF0dXMAAAADBQAAAApNQU5UTEVOQU1FCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAAlrRHVja0xvY2sJAQAAAAtrZXlEdWNrTG9jawAAAAIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAxmaXJzdFBheW1lbnQAAAAHYXNzZXRJZAQAAAAMbWFudGxlRXhpc3RzCQEAAAARQGV4dHJOYXRpdmUoMTA1NikAAAABBQAAAA1rTWFudGxlRXhpc3RzBAAAAAttYW50bGVPd25lcgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQUAAAAMa01hbnRsZU93bmVyBAAAAAxtYW50bGVTdGF0dXMJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAEFAAAADWtNYW50bGVTdGF0dXMEAAAAEWtBcnRlZmFjdElkQnlUeXBlCQEAAAAaa2V5QXJ0ZWZhY3RJZEJ5RHVja0FuZFR5cGUAAAACBQAAAApNQU5UTEVOQU1FCQEAAAAFdmFsdWUAAAABCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEFAAAADG1hbnRsZUV4aXN0cwkAAAIAAAABAgAAACtXUE9BOiBNYW50bGUgd2l0aCBzdWNoIGFuIElEIGRvZXMgbm90IGV4aXN0AwkBAAAAAiE9AAAAAgUAAAALbWFudGxlT3duZXIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyCQAAAgAAAAECAAAAJ1dQT0E6IFlvdSdyZSBub3QgYW4gb3duZXIgb2YgdGhlIG1hbnRsZQMJAQAAAAIhPQAAAAIFAAAADG1hbnRsZVN0YXR1cwUAAAAKU1RBVFVTRlJFRQkAAAIAAAABAgAAAB1XUE9BOiBNYW50bGUgaXMgYWxyZWFkeSB1c2VkIQQAAAAJc3Rha2VEdWNrAwkBAAAAAiE9AAAAAgUAAAAKaGFzU3dlYXRlcgIAAAAAAwkBAAAACWlzSmFja3BvdAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAxmaXJzdFBheW1lbnQAAAAHYXNzZXRJZAkAA/wAAAAECQEAAAARZ2V0RmFybWluZ0FkZHJlc3MAAAAAAgAAABRzdGFrZU5GVFdpdGhvdXRQZXJjaAUAAAADbmlsCAUAAAABaQAAAAhwYXltZW50cwkAA/wAAAAECQEAAAARZ2V0RmFybWluZ0FkZHJlc3MAAAAAAgAAAAhzdGFrZU5GVAUAAAADbmlsCAUAAAABaQAAAAhwYXltZW50cwUAAAADbmlsAwkAAAAAAAACBQAAAAlzdGFrZUR1Y2sFAAAACXN0YWtlRHVjawQAAAAOa1B1dE9uQXJ0ZWZhY3QJAQAAABBrZXlQdXRPbkFydGVmYWN0AAAABAUAAAAKTUFOVExFTkFNRQkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQgFAAAADGZpcnN0UGF5bWVudAAAAAdhc3NldElkCQACWQAAAAEFAAAACmFydGVmYWN0SWQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAADmtQdXRPbkFydGVmYWN0BgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1rTWFudGxlU3RhdHVzBQAAAA5TVEFUVVNPQ0NVUElFRAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABdrQXJ0ZWZhY3RPd25lckFuZFN0YXR1cwUAAAAOU1RBVFVTT0NDVVBJRUQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtEdWNrTG9jawYJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAARa0FydGVmYWN0SWRCeVR5cGUFAAAACmFydGVmYWN0SWQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAPdGFrZU9mZkFydGVmYWN0AAAAAgAAAAZkdWNrSWQAAAAMYXJ0ZWZhY3RUeXBlBAAAABhrQXJ0ZWZhY3RJZEJ5VHlwZUFuZER1Y2sJAQAAABprZXlBcnRlZmFjdElkQnlEdWNrQW5kVHlwZQAAAAIFAAAADGFydGVmYWN0VHlwZQkAAlkAAAABBQAAAAZkdWNrSWQEAAAACmFydGVmYWN0SWQJAQAAABFAZXh0ck5hdGl2ZSgxMDU4KQAAAAEFAAAAGGtBcnRlZmFjdElkQnlUeXBlQW5kRHVjawQAAAANa0FydGVmYWN0VHlwZQkBAAAAD2tleUFydGVmYWN0VHlwZQAAAAEJAAJZAAAAAQUAAAAKYXJ0ZWZhY3RJZAQAAAAOa1B1dE9uQXJ0ZWZhY3QJAQAAABBrZXlQdXRPbkFydGVmYWN0AAAABAUAAAAMYXJ0ZWZhY3RUeXBlCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAAGZHVja0lkCQACWQAAAAEFAAAACmFydGVmYWN0SWQEAAAAFGtQdXRPbkFydGVmYWN0U3RhdHVzCQEAAAARQGV4dHJOYXRpdmUoMTA1NikAAAABBQAAAA5rUHV0T25BcnRlZmFjdAQAAAAXa0FydGVmYWN0T3duZXJBbmRTdGF0dXMJAQAAABlrZXlBcnRlZmFjdE93bmVyQW5kU3RhdHVzAAAAAwUAAAAMYXJ0ZWZhY3RUeXBlCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkAAlkAAAABBQAAAAphcnRlZmFjdElkBAAAAAlrRHVja0xvY2sJAQAAAAtrZXlEdWNrTG9jawAAAAIJAAQlAAAAAQgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyBQAAAAZkdWNrSWQEAAAADWtNYW50bGVTdGF0dXMJAQAAABFrZXlBcnRlZmFjdFN0YXR1cwAAAAIFAAAADGFydGVmYWN0VHlwZQkAAlkAAAABBQAAAAphcnRlZmFjdElkAwkBAAAAAiE9AAAAAgUAAAAUa1B1dE9uQXJ0ZWZhY3RTdGF0dXMGCQAAAgAAAAECAAAALFdUT0E6IFRoZXJlIGlzIG5vIGR1Y2sgd2l0aCBzdWNoIHBhcmFtZXRlcmVzBAAAAApoYXNTd2VhdGVyCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAATZ2V0V2VhcmFibGVzQWRkcmVzcwAAAAAJAAEsAAAAAgUAAAAGZHVja0lkAgAAAA1fQVJULVhTV0VBVEVSBAAAAAhpc1N0YWtlZAMJAAAAAAAAAgkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwkABCUAAAABCAUAAAABaQAAAAxvcmlnaW5DYWxsZXICAAAAB19hc3NldF8FAAAABmR1Y2tJZAIAAAAJX3Vuc3Rha2VyAgAAAAAHBgQAAAALdW5zdGFrZUR1Y2sDAwkBAAAAAiE9AAAAAgUAAAAKaGFzU3dlYXRlcgIAAAAABQAAAAhpc1N0YWtlZAcDCQEAAAAJaXNKYWNrcG90AAAAAQkAAlkAAAABBQAAAAZkdWNrSWQJAQAAAAVhc0ludAAAAAEJAAP8AAAABAkBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAIAAAAOdW5zdGFrZUphY2twb3QJAARMAAAAAgUAAAAGZHVja0lkBQAAAANuaWwFAAAAA25pbAkBAAAABWFzSW50AAAAAQkAA/wAAAAECQEAAAARZ2V0RmFybWluZ0FkZHJlc3MAAAAAAgAAAAp1bnN0YWtlTkZUCQAETAAAAAIFAAAABmR1Y2tJZAUAAAADbmlsBQAAAANuaWwAAAAAAAAAAAADCQAAAAAAAAIFAAAAC3Vuc3Rha2VEdWNrBQAAAAt1bnN0YWtlRHVjawQAAAALc2VuZFJld2FyZHMDCQAAZgAAAAIFAAAAC3Vuc3Rha2VEdWNrAAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAALdW5zdGFrZUR1Y2sJAQAAAA1nZXRFZ2dBc3NldElkAAAAAAUAAAADbmlsBQAAAANuaWwJAAROAAAAAgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAA5rUHV0T25BcnRlZmFjdAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAABhrQXJ0ZWZhY3RJZEJ5VHlwZUFuZER1Y2sJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAJa0R1Y2tMb2NrCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWtNYW50bGVTdGF0dXMFAAAAClNUQVRVU0ZSRUUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAXa0FydGVmYWN0T3duZXJBbmRTdGF0dXMFAAAAClNUQVRVU0ZSRUUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAMb3JpZ2luQ2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAABmR1Y2tJZAUAAAADbmlsBQAAAAtzZW5kUmV3YXJkcwkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tledfpcNU=", "height": 3418009, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: YsZwzX4jCdkwQGDi9wQauVNpWoMndxQkHGBGrbxmQaE Next: CNCs5PnMta9FFhuusrXcZhZKTkV1XYYzn85XKRgCteNt Diff:
OldNewDifferences
116116 let kOnlyArtefactLevel = keyOnlyArtefactLevel(fromBase58String(artefactId))
117117 let totalInvested = (mantleAlreadyInvested + amount)
118118 let newLevel = (((10 * pow(totalInvested, 8, 6, 1, 8, HALFUP)) + 100000000) / 100000000)
119-[IntegerEntry(kMantleLevel, newLevel), IntegerEntry(kMantleInvested, totalInvested), IntegerEntry(kOnlyArtefactLevel, newLevel)]
119+ if ((newLevel >= 340))
120+ then throw("DUMF: You reached the max level! Max level is 340!")
121+ else [IntegerEntry(kMantleLevel, newLevel), IntegerEntry(kMantleInvested, totalInvested), IntegerEntry(kOnlyArtefactLevel, newLevel)]
120122 }
121123 }
122124
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetString (key) = match getString(this, key) {
55 case a: String =>
66 a
77 case _ =>
88 ""
99 }
1010
1111
1212 func tryGetStringExternal (address,key) = match getString(address, key) {
1313 case a: String =>
1414 a
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 func getOracle () = Address(fromBase58String(tryGetString("static_oracleAddress")))
2121
2222
2323 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_breederAddress")))
2424
2525
2626 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_incubatorAddress")))
2727
2828
2929 func getSwopPromoAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_swopPromoAddress")))
3030
3131
3232 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), "static_eggAssetId"))
3333
3434
3535 func getWearablesAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_wearablesAddress")))
3636
3737
3838 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_farmingAddress")))
3939
4040
4141 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_couponsAddress")))
4242
4343
4444 func getRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_rebirthAddress")))
4545
4646
4747 func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_burnAddress")))
4848
4949
5050 let MANTLENAME = "mantle"
5151
5252 let STATUSFREE = "FREE"
5353
5454 let STATUSOCCUPIED = "OCCUPIED"
5555
5656 func keyDuckLock (callerAddress,duckId) = (((("address_" + callerAddress) + "_duck_") + duckId) + "_status")
5757
5858
5959 func keyInvestor (callerAddress) = (("address_" + callerAddress) + "_amount")
6060
6161
6262 func keyArtefactInvested (type,artefactId) = (((("artefact_" + type) + "_artefactId_") + artefactId) + "_invested")
6363
6464
6565 func keyOnlyArtefactLevel (artefactId) = (("artefactId_" + toBase58String(artefactId)) + "_level")
6666
6767
6868 func keyArtefactIdByDuckAndType (type,duckId) = (((("artefact_ " + type) + "_duck_") + toBase58String(duckId)) + "_artefactId")
6969
7070
7171 func keyArtefactOwner (type,artefactId) = (((("artefact_ " + type) + "_artefactId_") + toBase58String(artefactId)) + "_owner")
7272
7373
7474 func keyArtefactOwnerAndStatus (type,owner,artefactId) = (((((("address_" + owner) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
7575
7676
7777 func keyArtefactStatus (type,artefactId) = (((("artefact_ " + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
7878
7979
8080 func keyArtefactType (artefactId) = (("artefactId_" + toBase58String(artefactId)) + "_type")
8181
8282
8383 func keyArtefactLevel (type,owner,artefactId) = (((((("address_" + owner) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_level")
8484
8585
8686 func keyPutOnArtefact (type,owner,duckId,artefactId) = (((((((("address_" + owner) + "_duck_") + duckId) + "_artefact_") + type) + "_artefactId_") + toBase58String(artefactId)) + "_status")
8787
8888
8989 func keyArtefactExists (type,artefactId) = ((("artefact_" + type) + "_artefactId_") + toBase58String(artefactId))
9090
9191
9292 func isJackpot (assetId) = (takeRight(value(value(assetInfo(assetId)).name), 1) == "U")
9393
9494
9595 func asInt (value) = match value {
9696 case int: Int =>
9797 int
9898 case _ =>
9999 throw("WAI: wrong type, expected: Int")
100100 }
101101
102102
103103 func upgradeMantleFunc (i,artefactId,amount) = {
104104 let kMantleExists = keyArtefactExists(MANTLENAME, fromBase58String(artefactId))
105105 let kMantleOwner = keyArtefactOwner(MANTLENAME, fromBase58String(artefactId))
106106 let mantleExists = getBooleanValue(kMantleExists)
107107 let mantleOwner = getStringValue(kMantleOwner)
108108 if (!(mantleExists))
109109 then throw("WUPM: Mantle with such an ID does not exist")
110110 else if ((mantleOwner != toString(i.originCaller)))
111111 then throw("WUPM: You're not an owner of the mantle")
112112 else {
113113 let kMantleInvested = keyArtefactInvested(MANTLENAME, artefactId)
114114 let mantleAlreadyInvested = getIntegerValue(kMantleInvested)
115115 let kMantleLevel = keyArtefactLevel(MANTLENAME, toString(i.originCaller), fromBase58String(artefactId))
116116 let kOnlyArtefactLevel = keyOnlyArtefactLevel(fromBase58String(artefactId))
117117 let totalInvested = (mantleAlreadyInvested + amount)
118118 let newLevel = (((10 * pow(totalInvested, 8, 6, 1, 8, HALFUP)) + 100000000) / 100000000)
119-[IntegerEntry(kMantleLevel, newLevel), IntegerEntry(kMantleInvested, totalInvested), IntegerEntry(kOnlyArtefactLevel, newLevel)]
119+ if ((newLevel >= 340))
120+ then throw("DUMF: You reached the max level! Max level is 340!")
121+ else [IntegerEntry(kMantleLevel, newLevel), IntegerEntry(kMantleInvested, totalInvested), IntegerEntry(kOnlyArtefactLevel, newLevel)]
120122 }
121123 }
122124
123125
124126 @Callable(i)
125127 func configureOracle (oracle) = if ((i.caller != this))
126128 then throw("WCO: admin only")
127129 else [StringEntry("static_oracleAddress", oracle)]
128130
129131
130132
131133 @Callable(i)
132134 func issueFreeMantle (address,type,level) = if (if ((i.caller != this))
133135 then (i.caller != getSwopPromoAddress())
134136 else false)
135137 then throw("WIFM: Can be called only by admin")
136138 else if ((type != MANTLENAME))
137139 then throw("WIFM: You can buy only mantles now")
138140 else {
139141 let issueMantleNFT = Issue("DUCK-MANTLE-0", "[Artefact] Mantle NFT for Jeduck", 1, 0, false)
140142 let mantleNftId = calculateAssetId(issueMantleNFT)
141143 let kMantleLevel = keyArtefactLevel(MANTLENAME, address, mantleNftId)
142144 let kMantleExists = keyArtefactExists(MANTLENAME, mantleNftId)
143145 let kMantleOwner = keyArtefactOwner(MANTLENAME, mantleNftId)
144146 let kMantleStatus = keyArtefactStatus(MANTLENAME, mantleNftId)
145147 let kArtefactType = keyArtefactType(mantleNftId)
146148 let kMantleInvested = keyArtefactInvested(MANTLENAME, toBase58String(mantleNftId))
147149 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, address, mantleNftId)
148150 let kOnlyArtefactLevel = keyOnlyArtefactLevel(mantleNftId)
149151 let invested = pow((level - 1), 1, (1000000000 / 6), 8, 8, HALFUP)
150152 $Tuple2([IntegerEntry(kMantleLevel, level), IntegerEntry(kMantleInvested, invested), BooleanEntry(kMantleExists, true), StringEntry(kMantleOwner, address), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactType, MANTLENAME), StringEntry(kArtefactOwnerAndStatus, STATUSFREE), IntegerEntry(kOnlyArtefactLevel, level)], toBase58String(mantleNftId))
151153 }
152154
153155
154156
155157 @Callable(i)
156158 func buyArtefact (type) = throw("WBA: Artefacts buying is disabled for now")
157159
158160
159161
160162 @Callable(i)
161163 func upgradeMantle (artefactId) = {
162164 let upgradePointPrice = 1000000
163165 let firstPayment = value(i.payments[0])
164166 let amount = firstPayment.amount
165167 if ((firstPayment.assetId != getEggAssetId()))
166168 then throw(("WUM: You can attach only EGG tokens with the following asset id: " + toBase58String(getEggAssetId())))
167169 else if ((upgradePointPrice > firstPayment.amount))
168170 then throw(("WUM: Minimal payment for upgrading mantle is: " + toString(upgradePointPrice)))
169171 else upgradeMantleFunc(i, artefactId, amount)
170172 }
171173
172174
173175
174176 @Callable(i)
175177 func upgradeMantleByCoupons (artefactId,couponsAmount) = {
176178 let upgradePointPrice = 1000000
177179 let amount = if ((size(i.payments) == 1))
178180 then {
179181 let firstPayment = value(i.payments[0])
180182 if ((firstPayment.assetId != getEggAssetId()))
181183 then throw(("WUMBC: You can attach only EGG tokens with the following asset id: " + toBase58String(getEggAssetId())))
182184 else {
183185 let burnCall = invoke(getBurnAddress(), "burnAttachedPayments", nil, [AttachedPayment(getEggAssetId(), firstPayment.amount)])
184186 if ((burnCall == burnCall))
185187 then firstPayment.amount
186188 else throw("Strict value is not equal to itself.")
187189 }
188190 }
189191 else 0
190192 if ((upgradePointPrice > (couponsAmount + amount)))
191193 then throw(("WUMBC: Minimal payment for upgrading mantle is: " + toString(upgradePointPrice)))
192194 else {
193195 let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [couponsAmount], nil))
194196 if ((amountPaidByCoupons == amountPaidByCoupons))
195197 then if ((couponsAmount != amountPaidByCoupons))
196198 then throw("WUMBC: Not enough coupons! Please make sure to pick lower coupon amount!")
197199 else upgradeMantleFunc(i, artefactId, (couponsAmount + amount))
198200 else throw("Strict value is not equal to itself.")
199201 }
200202 }
201203
202204
203205
204206 @Callable(i)
205207 func putOnArtefact (artefactId) = {
206208 let firstPayment = value(i.payments[0])
207209 let attachedAssetInfo = value(assetInfo(value(firstPayment.assetId)))
208210 if ((firstPayment.amount != 1))
209211 then throw("WPOA: NFT is not attached")
210212 else if (if ((attachedAssetInfo.issuer != getIncubatorAddress()))
211213 then (attachedAssetInfo.issuer != getBreederAddress())
212214 else false)
213215 then throw("WPOA: You can attach only DUCKs issued by incubator or breeder ")
214216 else {
215217 let hasSweater = tryGetStringExternal(getWearablesAddress(), (toBase58String(value(firstPayment.assetId)) + "_ART-XSWEATER"))
216218 let kMantleExists = keyArtefactExists(MANTLENAME, fromBase58String(artefactId))
217219 let kMantleOwner = keyArtefactOwner(MANTLENAME, fromBase58String(artefactId))
218220 let kMantleStatus = keyArtefactStatus(MANTLENAME, fromBase58String(artefactId))
219221 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(MANTLENAME, toString(i.originCaller), fromBase58String(artefactId))
220222 let kDuckLock = keyDuckLock(toString(i.originCaller), toBase58String(value(firstPayment.assetId)))
221223 let mantleExists = getBooleanValue(kMantleExists)
222224 let mantleOwner = getStringValue(kMantleOwner)
223225 let mantleStatus = getStringValue(kMantleStatus)
224226 let kArtefactIdByType = keyArtefactIdByDuckAndType(MANTLENAME, value(firstPayment.assetId))
225227 if (!(mantleExists))
226228 then throw("WPOA: Mantle with such an ID does not exist")
227229 else if ((mantleOwner != toString(i.originCaller)))
228230 then throw("WPOA: You're not an owner of the mantle")
229231 else if ((mantleStatus != STATUSFREE))
230232 then throw("WPOA: Mantle is already used!")
231233 else {
232234 let stakeDuck = if ((hasSweater != ""))
233235 then if (isJackpot(value(firstPayment.assetId)))
234236 then invoke(getFarmingAddress(), "stakeNFTWithoutPerch", nil, i.payments)
235237 else invoke(getFarmingAddress(), "stakeNFT", nil, i.payments)
236238 else nil
237239 if ((stakeDuck == stakeDuck))
238240 then {
239241 let kPutOnArtefact = keyPutOnArtefact(MANTLENAME, toString(i.originCaller), toBase58String(value(firstPayment.assetId)), fromBase58String(artefactId))
240242 [BooleanEntry(kPutOnArtefact, true), StringEntry(kMantleStatus, STATUSOCCUPIED), StringEntry(kArtefactOwnerAndStatus, STATUSOCCUPIED), BooleanEntry(kDuckLock, true), StringEntry(kArtefactIdByType, artefactId)]
241243 }
242244 else throw("Strict value is not equal to itself.")
243245 }
244246 }
245247 }
246248
247249
248250
249251 @Callable(i)
250252 func takeOffArtefact (duckId,artefactType) = {
251253 let kArtefactIdByTypeAndDuck = keyArtefactIdByDuckAndType(artefactType, fromBase58String(duckId))
252254 let artefactId = getStringValue(kArtefactIdByTypeAndDuck)
253255 let kArtefactType = keyArtefactType(fromBase58String(artefactId))
254256 let kPutOnArtefact = keyPutOnArtefact(artefactType, toString(i.originCaller), duckId, fromBase58String(artefactId))
255257 let kPutOnArtefactStatus = getBooleanValue(kPutOnArtefact)
256258 let kArtefactOwnerAndStatus = keyArtefactOwnerAndStatus(artefactType, toString(i.originCaller), fromBase58String(artefactId))
257259 let kDuckLock = keyDuckLock(toString(i.originCaller), duckId)
258260 let kMantleStatus = keyArtefactStatus(artefactType, fromBase58String(artefactId))
259261 if ((kPutOnArtefactStatus != true))
260262 then throw("WTOA: There is no duck with such parameteres")
261263 else {
262264 let hasSweater = tryGetStringExternal(getWearablesAddress(), (duckId + "_ART-XSWEATER"))
263265 let isStaked = if ((tryGetStringExternal(getFarmingAddress(), (((("address_" + toString(i.originCaller)) + "_asset_") + duckId) + "_unstaker")) == ""))
264266 then false
265267 else true
266268 let unstakeDuck = if (if ((hasSweater != ""))
267269 then isStaked
268270 else false)
269271 then if (isJackpot(fromBase58String(duckId)))
270272 then asInt(invoke(getFarmingAddress(), "unstakeJackpot", [duckId], nil))
271273 else asInt(invoke(getFarmingAddress(), "unstakeNFT", [duckId], nil))
272274 else 0
273275 if ((unstakeDuck == unstakeDuck))
274276 then {
275277 let sendRewards = if ((unstakeDuck > 0))
276278 then [ScriptTransfer(i.originCaller, unstakeDuck, getEggAssetId())]
277279 else nil
278280 ([DeleteEntry(kPutOnArtefact), DeleteEntry(kArtefactIdByTypeAndDuck), DeleteEntry(kDuckLock), StringEntry(kMantleStatus, STATUSFREE), StringEntry(kArtefactOwnerAndStatus, STATUSFREE), ScriptTransfer(i.originCaller, 1, fromBase58String(duckId))] ++ sendRewards)
279281 }
280282 else throw("Strict value is not equal to itself.")
281283 }
282284 }
283285
284286
285287 @Verifier(tx)
286288 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
287289

github/deemru/w8io/6500d08 
67.86 ms