tx · 3LapG6R7tHyCvhzxeDJreDFqL3uefc2BH2XJNEQK39pa 3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn: -0.01400000 Waves 2022.05.18 12:47 [2056937] smart account 3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn > SELF 0.00000000 Waves
{ "type": 13, "id": "3LapG6R7tHyCvhzxeDJreDFqL3uefc2BH2XJNEQK39pa", "fee": 1400000, "feeAssetId": null, "timestamp": 1652867276920, "version": 2, "chainId": 84, "sender": "3MxiJLrY6Qa5bSYxxSFHSG5bVV2n59x1MGn", "senderPublicKey": "9M1hAsbWkVP73NKHvZezCkamwZfSdkejc3b8sejqT98D", "proofs": [ "2xgvvzto4vG3RfMxH4omWvuHQsk2RpC4KK9y3EEXXibMT3ATipHZvc9kwf9yE7XEGS3keag7QwG3up29zsCSa6pV" ], "script": "base64:AAIFAAAAAAAAAAgIAhIECgIBAQAAACAAAAAACXNlcGFyYXRvcgIAAAABXwAAAAANc2hhcmVEZWNpbWFscwAN4Lazp2QAAAAAAAASa2V5Q2hhckN1cnJlbnRMYW5kAgAAABFjaGFyX2N1cnJlbnRfbGFuZAAAAAAfa2V5Q2hhckluaXRpYWxHZW5lcmF0ZWRTdXBwbGllcwIAAAAfY2hhcl9pbml0aWFsX2dlbmVyYXRlZF9zdXBwbGllcwAAAAAQa2V5TGFuZFB5cm9Qb3dlcgIAAAAPbGFuZF9weXJvX3Bvd2VyAAAAABBrZXlMYW5kQXF1YVBvd2VyAgAAAA9sYW5kX2FxdWFfcG93ZXIAAAAAEWtleUxhbmRUZXJyYVBvd2VyAgAAABBsYW5kX3RlcnJhX3Bvd2VyAAAAABBrZXlMYW5kQWVyb1Bvd2VyAgAAAA9sYW5kX2Flcm9fcG93ZXIAAAAAF2tleUNoYXJJbml0aWFsUHlyb1NoYXJlAgAAABdjaGFyX2luaXRpYWxfcHlyb19zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBcXVhU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hcXVhX3NoYXJlAAAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUCAAAAGGNoYXJfaW5pdGlhbF90ZXJyYV9zaGFyZQAAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUCAAAAF2NoYXJfaW5pdGlhbF9hZXJvX3NoYXJlAAAAABJrZXlDaGFyVG90YWxJbmNvbWUCAAAAEWNoYXJfdG90YWxfaW5jb21lAAAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUCAAAAFGFkZHJlc3NfdG90YWxfaW5jb21lAAAAAAZnb3ZBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNNeXhmd3ZidWVVQnluWUhmUXN1dE5YWk5xTm96R2lNbnNHAAAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMCAAAAE2Vjb3N5c3RlbV9hZGRyZXNzZXMAAAAADWtleVRvdGFsTGFuZHMCAAAAC3RvdGFsX2xhbmRzAAAAABRrZXlUb2tlbkVtaXNzaW9uUmF0ZQIAAAATdG9rZW5fZW1pc3Npb25fcmF0ZQAAAAAIY2hhcnNBcHAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAECAAAAIzNOQTNMUlNpZ2s2a25MWjE2dVR6Y2RMTm93MkVRWnRYVGFKAAAAAAhrZXlPd25lcgIAAAAFb3duZXIAAAAAE2tleU5hdHVyYWxQeXJvQm9udXMCAAAAEm5hdHVyYWxfcHlyb19ib251cwAAAAATa2V5TmF0dXJhbEFxdWFCb251cwIAAAASbmF0dXJhbF9hcXVhX2JvbnVzAAAAABRrZXlOYXR1cmFsVGVycmFCb251cwIAAAATbmF0dXJhbF90ZXJyYV9ib251cwAAAAATa2V5TmF0dXJhbEFlcm9Cb251cwIAAAASbmF0dXJhbF9hZXJvX2JvbnVzAQAAAAxpbnZva2VDaGVja3MAAAABAAAACmNhbGxlckFkZHIDCQEAAAACIT0AAAACCQAEHgAAAAEFAAAABmdvdkFwcAcJAAACAAAAAQIAAAAXR292ZXJuaW5nIGFwcCBub3QgcmVhZHkEAAAAEmVjb3N5c3RlbUFkZHJlc3NlcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAGZ292QXBwBQAAABVrZXlFY29zeXN0ZW1BZGRyZXNzZXMDCQEAAAACIT0AAAACCQEAAAAIY29udGFpbnMAAAACBQAAABJlY29zeXN0ZW1BZGRyZXNzZXMJAAQlAAAAAQUAAAAKY2FsbGVyQWRkcgcJAAACAAAAAQIAAAANQWNjZXNzIGRlbmllZAYBAAAABHdpdGgAAAACAAAAAWEAAAABYgQAAAABYwQAAAAHJG1hdGNoMAUAAAABYgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpc0ludAUAAAAHJG1hdGNoMAkAAaQAAAABBQAAAAVpc0ludAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAVpc1N0cgUAAAAHJG1hdGNoMAUAAAAFaXNTdHIJAAACAAAAAQIAAAAfTWF0Y2hpbmcgaXNzdWUgaW4gd2l0aCBmdW5jdGlvbgkAASwAAAACCQABLAAAAAIFAAAAAWMFAAAACXNlcGFyYXRvcgUAAAABYQEAAAAXZ2V0Q2hhck5hdHVyYWxFbGVtQm9udXMAAAABAAAABmNoYXJJZAkABEwAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAhjaGFyc0FwcAkBAAAABHdpdGgAAAACBQAAABNrZXlOYXR1cmFsUHlyb0JvbnVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAIY2hhcnNBcHAJAQAAAAR3aXRoAAAAAgUAAAATa2V5TmF0dXJhbEFxdWFCb251cwUAAAAGY2hhcklkCQAETAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACGNoYXJzQXBwCQEAAAAEd2l0aAAAAAIFAAAAFGtleU5hdHVyYWxUZXJyYUJvbnVzBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAIY2hhcnNBcHAJAQAAAAR3aXRoAAAAAgUAAAATa2V5TmF0dXJhbEFlcm9Cb251cwUAAAAGY2hhcklkBQAAAANuaWwBAAAAEGdldExhbmRFbGVtUG93ZXIAAAABAAAABmxhbmRJZAkABEwAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZFB5cm9Qb3dlcgUAAAAGbGFuZElkAAAAAAAAAAAACQAETAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQXF1YVBvd2VyBQAAAAZsYW5kSWQAAAAAAAAAAAAJAARMAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAEWtleUxhbmRUZXJyYVBvd2VyBQAAAAZsYW5kSWQAAAAAAAAAAAAJAARMAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBZXJvUG93ZXIFAAAABmxhbmRJZAAAAAAAAAAAAAUAAAADbmlsAQAAABRjYWxjTmV3TGFuZEVsZW1Qb3dlcgAAAAIAAAAGbGFuZElkAAAAFGNoYXJOYXR1cmFsRWxlbUJvbnVzBAAAABBuZXdMYW5kRWxlbVBvd2VyCQEAAAAQZ2V0TGFuZEVsZW1Qb3dlcgAAAAEFAAAABmxhbmRJZAkABEwAAAACCQAAZAAAAAIJAAGRAAAAAgUAAAAQbmV3TGFuZEVsZW1Qb3dlcgAAAAAAAAAAAAkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAAkABEwAAAACCQAAZAAAAAIJAAGRAAAAAgUAAAAQbmV3TGFuZEVsZW1Qb3dlcgAAAAAAAAAAAQkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAQkABEwAAAACCQAAZAAAAAIJAAGRAAAAAgUAAAAQbmV3TGFuZEVsZW1Qb3dlcgAAAAAAAAAAAgkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAgkABEwAAAACCQAAZAAAAAIJAAGRAAAAAgUAAAAQbmV3TGFuZEVsZW1Qb3dlcgAAAAAAAAAAAwkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAwUAAAADbmlsAQAAABRjYWxjT2xkTGFuZEVsZW1Qb3dlcgAAAAIAAAAQb2xkTGFuZEVsZW1Qb3dlcgAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwkABEwAAAACCQAAZQAAAAIJAAGRAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgAAAAAAAAAAAAkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAAkABEwAAAACCQAAZQAAAAIJAAGRAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgAAAAAAAAAAAQkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAQkABEwAAAACCQAAZQAAAAIJAAGRAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgAAAAAAAAAAAgkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAgkABEwAAAACCQAAZQAAAAIJAAGRAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgAAAAAAAAAAAwkAAZEAAAACBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAAAAAAAAAAwUAAAADbmlsAQAAABJjYWxjQ2hhckVsZW1TaGFyZXMAAAACAAAAEGNoYXJOYXR1cmFsQm9udXMAAAANbGFuZEVsZW1Qb3dlcgkABEwAAAACCQAAawAAAAMFAAAADXNoYXJlRGVjaW1hbHMJAAGRAAAAAgUAAAAQY2hhck5hdHVyYWxCb251cwAAAAAAAAAAAAkAAZEAAAACBQAAAA1sYW5kRWxlbVBvd2VyAAAAAAAAAAAACQAETAAAAAIJAABrAAAAAwUAAAANc2hhcmVEZWNpbWFscwkAAZEAAAACBQAAABBjaGFyTmF0dXJhbEJvbnVzAAAAAAAAAAABCQABkQAAAAIFAAAADWxhbmRFbGVtUG93ZXIAAAAAAAAAAAEJAARMAAAAAgkAAGsAAAADBQAAAA1zaGFyZURlY2ltYWxzCQABkQAAAAIFAAAAEGNoYXJOYXR1cmFsQm9udXMAAAAAAAAAAAIJAAGRAAAAAgUAAAANbGFuZEVsZW1Qb3dlcgAAAAAAAAAAAgkABEwAAAACCQAAawAAAAMFAAAADXNoYXJlRGVjaW1hbHMJAAGRAAAAAgUAAAAQY2hhck5hdHVyYWxCb251cwAAAAAAAAAAAwkAAZEAAAACBQAAAA1sYW5kRWxlbVBvd2VyAAAAAAAAAAADBQAAAANuaWwBAAAADmNhbGNDaGFySW5jb21lAAAABAAAAAZjaGFySWQAAAAQb2xkTGFuZEVsZW1Qb3dlcgAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwAAABhjdXJyZW50R2VuZXJhdGVkU3VwcGxpZXMEAAAAHG9sZExhbmRDaGFyQ3VycmVudEVsZW1TaGFyZXMJAQAAABJjYWxjQ2hhckVsZW1TaGFyZXMAAAACBQAAABBvbGRMYW5kRWxlbVBvd2VyBQAAABRjaGFyTmF0dXJhbEVsZW1Cb251cwQAAAAcb2xkTGFuZENoYXJBdmVyYWdlRWxlbVNoYXJlcwkABEwAAAACCQAAaQAAAAIJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQABkQAAAAIFAAAAHG9sZExhbmRDaGFyQ3VycmVudEVsZW1T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AAAGbGFuZElkCQAAAgAAAAECAAAAGUNoYXIgYWxyZWFkeSBvbiB0aGF0IGxhbmQEAAAAFGNoYXJOYXR1cmFsRWxlbUJvbnVzCQEAAAAXZ2V0Q2hhck5hdHVyYWxFbGVtQm9udXMAAAABBQAAAAZjaGFySWQEAAAAEG9sZExhbmRFbGVtUG93ZXIJAQAAABBnZXRMYW5kRWxlbVBvd2VyAAAAAQUAAAALY3VycmVudExhbmQEAAAAHmN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllc1Jlc3VsdAkAA/wAAAAEBQAAAAZnb3ZBcHACAAAAFGdldEdlbmVyYXRlZFN1cHBsaWVzBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAeY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzUmVzdWx0BQAAAB5jdXJyZW50R2VuZXJhdGVkU3VwcGxpZXNSZXN1bHQEAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwQAAAAHJG1hdGNoMAUAAAAeY3VycmVudEdlbmVyYXRlZFN1cHBsaWVzUmVzdWx0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWlzSW50BQAAAAckbWF0Y2gwBQAAAAVpc0ludAkAAAIAAAABAgAAABFCYWQgaW52b2tlIHJlc3VsdAQAAAAOam9pbmluZ0FjdGlvbnMDCQEAAAACIT0AAAACBQAAAAZsYW5kSWQAAAAAAAAAAAAEAAAAE25ld0xhbmROZXdFbGVtUG93ZXIJAQAAABRjYWxjTmV3TGFuZEVsZW1Qb3dlcgAAAAIFAAAABmxhbmRJZAUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMEAAAAFW5ld0xhbmRDaGFyRWxlbVNoYXJlcwkBAAAAEmNhbGNDaGFyRWxlbVNoYXJlcwAAAAIFAAAAFGNoYXJOYXR1cmFsRWxlbUJvbnVzBQAAABNuZXdMYW5kTmV3RWxlbVBvd2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRQeXJvUG93ZXIFAAAABmxhbmRJZAkAAZEAAAACBQAAABNuZXdMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBcXVhUG93ZXIFAAAABmxhbmRJZAkAAZEAAAACBQAAABNuZXdMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEWtleUxhbmRUZXJyYVBvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kQWVyb1Bvd2VyBQAAAAZsYW5kSWQJAAGRAAAAAgUAAAATbmV3TGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAAB9rZXlDaGFySW5pdGlhbEdlbmVyYXRlZFN1cHBsaWVzBQAAAAZjaGFySWQFAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbFB5cm9TaGFyZQUAAAAGY2hhcklkCQABkQAAAAIFAAAAFW5ld0xhbmRDaGFyRWxlbVNoYXJlcwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbEFxdWFTaGFyZQUAAAAGY2hhcklkCQABkQAAAAIFAAAAFW5ld0xhbmRDaGFyRWxlbVNoYXJlcwAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABhrZXlDaGFySW5pdGlhbFRlcnJhU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAXa2V5Q2hhckluaXRpYWxBZXJvU2hhcmUFAAAABmNoYXJJZAkAAZEAAAACBQAAABVuZXdMYW5kQ2hhckVsZW1TaGFyZXMAAAAAAAAAAAMFAAAAA25pbAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAH2tleUNoYXJJbml0aWFsR2VuZXJhdGVkU3VwcGxpZXMFAAAABmNoYXJJZAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAEd2l0aAAAAAIFAAAAF2tleUNoYXJJbml0aWFsUHlyb1NoYXJlBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbEFxdWFTaGFyZQUAAAAGY2hhcklkCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAR3aXRoAAAAAgUAAAAYa2V5Q2hhckluaXRpYWxUZXJyYVNoYXJlBQAAAAZjaGFySWQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAABHdpdGgAAAACBQAAABdrZXlDaGFySW5pdGlhbEFlcm9TaGFyZQUAAAAGY2hhcklkBQAAAANuaWwEAAAADmV4aXRpbmdBY3Rpb25zAwkBAAAAAiE9AAAAAgUAAAALY3VycmVudExhbmQAAAAAAAAAAAAEAAAAE3NlbmRUb2tlbnNUb0FkZHJlc3MJAAP8AAAABAUAAAAGZ292QXBwAgAAABNzZW5kVG9rZW5zVG9BZGRyZXNzCQAETAAAAAIJAQAAAA5jYWxjQ2hhckluY29tZQAAAAQFAAAABmNoYXJJZAUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMFAAAAGGN1cnJlbnRHZW5lcmF0ZWRTdXBwbGllcwkABEwAAAACCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAATc2VuZFRva2Vuc1RvQWRkcmVzcwUAAAATc2VuZFRva2Vuc1RvQWRkcmVzcwQAAAAPY2hhclRva2VuSW5jb21lBAAAAAckbWF0Y2gwBQAAABNzZW5kVG9rZW5zVG9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWlzSW50BQAAAAckbWF0Y2gwBQAAAAVpc0ludAkAAAIAAAABAgAAAAxJbnZva2UgaXNzdWUEAAAAEm5ld0NoYXJUb3RhbEluY29tZQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhclRvdGFsSW5jb21lBQAAAAZjaGFySWQAAAAAAAAAAAAFAAAAD2NoYXJUb2tlbkluY29tZQQAAAAVbmV3QWRkcmVzc1RvdGFsSW5jb21lCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAABHdpdGgAAAACBQAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUFAAAACmNhbGxlckFkZHIAAAAAAAAAAAAFAAAAD2NoYXJUb2tlbkluY29tZQQAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgkBAAAAFGNhbGNPbGRMYW5kRWxlbVBvd2VyAAAAAgUAAAAQb2xkTGFuZEVsZW1Qb3dlcgUAAAAUY2hhck5hdHVyYWxFbGVtQm9udXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAASa2V5Q2hhclRvdGFsSW5jb21lBQAAAAZjaGFySWQFAAAAEm5ld0NoYXJUb3RhbEluY29tZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABVrZXlBZGRyZXNzVG90YWxJbmNvbWUFAAAACmNhbGxlckFkZHIFAAAAEm5ld0NoYXJUb3RhbEluY29tZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABBrZXlMYW5kUHlyb1Bvd2VyBQAAAAtjdXJyZW50TGFuZAkAAZEAAAACBQAAABNvbGRMYW5kTmV3RWxlbVBvd2VyAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEd2l0aAAAAAIFAAAAEGtleUxhbmRBcXVhUG93ZXIFAAAAC2N1cnJlbnRMYW5kCQABkQAAAAIFAAAAE29sZExhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAARa2V5TGFuZFRlcnJhUG93ZXIFAAAAC2N1cnJlbnRMYW5kCQABkQAAAAIFAAAAE29sZExhbmROZXdFbGVtUG93ZXIAAAAAAAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAR3aXRoAAAAAgUAAAAQa2V5TGFuZEFlcm9Qb3dlcgUAAAALY3VycmVudExhbmQJAAGRAAAAAgUAAAATb2xkTGFuZE5ld0VsZW1Qb3dlcgAAAAAAAAAAAwUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUAAAADbmlsCQAETgAAAAIJAAROAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAABHdpdGgAAAACBQAAABJrZXlDaGFyQ3VycmVudExhbmQFAAAABmNoYXJJZAUAAAAGbGFuZElkBQAAAANuaWwFAAAADmpvaW5pbmdBY3Rpb25zBQAAAA5leGl0aW5nQWN0aW9ucwkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleYHftKo=", "height": 2056937, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FQ6hkEt3dQ2Y4TgAUvv9d9ogU2PVsLT93nNPv12VjSZP Next: HZbJruGLQVyqmptfspxsKMnM7YqWwNAsYUfQkEgubWa3 Diff:
Old | New | Differences | |
---|---|---|---|
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "_" | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = 1000000000000000000 | |
7 | 7 | ||
8 | - | let c = " | |
8 | + | let c = "char_current_land" | |
9 | 9 | ||
10 | - | let d = " | |
10 | + | let d = "char_initial_generated_supplies" | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = "land_pyro_power" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "land_aqua_power" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "land_terra_power" | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = "land_aero_power" | |
19 | 19 | ||
20 | - | let i = "char" | |
20 | + | let i = "char_initial_pyro_share" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "char_initial_aqua_share" | |
23 | 23 | ||
24 | - | func k (l) = if ((isDataStorageUntouched(e) != false)) | |
24 | + | let k = "char_initial_terra_share" | |
25 | + | ||
26 | + | let l = "char_initial_aero_share" | |
27 | + | ||
28 | + | let m = "char_total_income" | |
29 | + | ||
30 | + | let n = "address_total_income" | |
31 | + | ||
32 | + | let o = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
33 | + | ||
34 | + | let p = "ecosystem_addresses" | |
35 | + | ||
36 | + | let q = "total_lands" | |
37 | + | ||
38 | + | let r = "token_emission_rate" | |
39 | + | ||
40 | + | let s = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ") | |
41 | + | ||
42 | + | let t = "owner" | |
43 | + | ||
44 | + | let u = "natural_pyro_bonus" | |
45 | + | ||
46 | + | let v = "natural_aqua_bonus" | |
47 | + | ||
48 | + | let w = "natural_terra_bonus" | |
49 | + | ||
50 | + | let x = "natural_aero_bonus" | |
51 | + | ||
52 | + | func y (z) = if ((isDataStorageUntouched(o) != false)) | |
25 | 53 | then throw("Governing app not ready") | |
26 | 54 | else { | |
27 | - | let | |
28 | - | if ((contains( | |
55 | + | let A = getStringValue(o, p) | |
56 | + | if ((contains(A, toString(z)) != false)) | |
29 | 57 | then throw("Access denied") | |
30 | - | else | |
58 | + | else true | |
31 | 59 | } | |
32 | 60 | ||
33 | 61 | ||
34 | - | func n (o,p) = ((toString(p) + a) + o) | |
62 | + | func B (C,D) = { | |
63 | + | let E = { | |
64 | + | let F = D | |
65 | + | if ($isInstanceOf(F, "Int")) | |
66 | + | then { | |
67 | + | let G = F | |
68 | + | toString(G) | |
69 | + | } | |
70 | + | else if ($isInstanceOf(F, "String")) | |
71 | + | then { | |
72 | + | let H = F | |
73 | + | H | |
74 | + | } | |
75 | + | else throw("Matching issue in with function") | |
76 | + | } | |
77 | + | ((E + a) + C) | |
78 | + | } | |
35 | 79 | ||
36 | 80 | ||
37 | - | @Callable(q) | |
38 | - | func bindCharToLand (r,s) = valueOrElse(k(q.caller), if ((getStringValue(h, n(j, r)) != toBase58String(q.caller.bytes))) | |
39 | - | then throw("Caller doesn't own this char") | |
40 | - | else if (if ((1 > s)) | |
41 | - | then true | |
42 | - | else (s > getIntegerValue(e, g))) | |
43 | - | then throw("Unknown land") | |
44 | - | else { | |
45 | - | let t = invoke(e, "getGeneratedSupplies", nil, nil) | |
46 | - | if ((t == t)) | |
47 | - | then { | |
48 | - | let u = { | |
49 | - | let v = t | |
50 | - | if ($isInstanceOf(v, "Int")) | |
51 | - | then { | |
52 | - | let w = v | |
53 | - | w | |
54 | - | } | |
55 | - | else throw("Invok result") | |
56 | - | } | |
57 | - | [IntegerEntry(n(b, r), s), IntegerEntry(n(c, r), height), IntegerEntry(n(d, r), u)] | |
58 | - | } | |
59 | - | else throw("Strict value is not equal to itself.") | |
60 | - | }) | |
81 | + | func I (J) = [getIntegerValue(s, B(u, J)), getIntegerValue(s, B(v, J)), getIntegerValue(s, B(w, J)), getIntegerValue(s, B(x, J))] | |
61 | 82 | ||
62 | 83 | ||
63 | - | @Verifier(x) | |
64 | - | func y () = sigVerify(x.bodyBytes, x.proofs[0], x.senderPublicKey) | |
84 | + | func K (L) = [valueOrElse(getInteger(this, B(e, L)), 0), valueOrElse(getInteger(this, B(f, L)), 0), valueOrElse(getInteger(this, B(g, L)), 0), valueOrElse(getInteger(this, B(h, L)), 0)] | |
85 | + | ||
86 | + | ||
87 | + | func M (L,N) = { | |
88 | + | let O = K(L) | |
89 | + | [(O[0] + N[0]), (O[1] + N[1]), (O[2] + N[2]), (O[3] + N[3])] | |
90 | + | } | |
91 | + | ||
92 | + | ||
93 | + | func P (Q,N) = [(Q[0] - N[0]), (Q[1] - N[1]), (Q[2] - N[2]), (Q[3] - N[3])] | |
94 | + | ||
95 | + | ||
96 | + | func R (S,T) = [fraction(b, S[0], T[0]), fraction(b, S[1], T[1]), fraction(b, S[2], T[2]), fraction(b, S[3], T[3])] | |
97 | + | ||
98 | + | ||
99 | + | func U (J,Q,N,V) = { | |
100 | + | let W = R(Q, N) | |
101 | + | let X = [((getIntegerValue(this, B(i, J)) + W[0]) / 2), ((getIntegerValue(this, B(j, J)) + W[1]) / 2), ((getIntegerValue(this, B(k, J)) + W[2]) / 2), ((getIntegerValue(this, B(l, J)) + W[3]) / 2)] | |
102 | + | let Y = (((V - getIntegerValue(this, B(d, J))) / getIntegerValue(o, q)) / 4) | |
103 | + | (((fraction(Y, X[0], b) + fraction(Y, X[1], b)) + fraction(Y, X[2], b)) + fraction(Y, X[3], b)) | |
104 | + | } | |
105 | + | ||
106 | + | ||
107 | + | @Callable(Z) | |
108 | + | func charMovingLand (J,L) = if ((y(Z.caller) != true)) | |
109 | + | then throw() | |
110 | + | else { | |
111 | + | let z = toBase58String(Z.caller.bytes) | |
112 | + | if ((getStringValue(s, B(t, J)) != z)) | |
113 | + | then throw("Caller doesn't own this char") | |
114 | + | else if (if ((0 > L)) | |
115 | + | then true | |
116 | + | else (L > getIntegerValue(o, q))) | |
117 | + | then throw("Not a land") | |
118 | + | else { | |
119 | + | let aa = valueOrElse(getInteger(this, B(c, J)), 0) | |
120 | + | if ((aa == L)) | |
121 | + | then throw("Char already on that land") | |
122 | + | else { | |
123 | + | let N = I(J) | |
124 | + | let Q = K(aa) | |
125 | + | let ab = invoke(o, "getGeneratedSupplies", nil, nil) | |
126 | + | if ((ab == ab)) | |
127 | + | then { | |
128 | + | let V = { | |
129 | + | let F = ab | |
130 | + | if ($isInstanceOf(F, "Int")) | |
131 | + | then { | |
132 | + | let G = F | |
133 | + | G | |
134 | + | } | |
135 | + | else throw("Bad invoke result") | |
136 | + | } | |
137 | + | let ac = if ((L != 0)) | |
138 | + | then { | |
139 | + | let ad = M(L, N) | |
140 | + | let ae = R(N, ad) | |
141 | + | [IntegerEntry(B(e, L), ad[0]), IntegerEntry(B(f, L), ad[1]), IntegerEntry(B(g, L), ad[2]), IntegerEntry(B(h, L), ad[3]), IntegerEntry(B(d, J), V), IntegerEntry(B(i, J), ae[0]), IntegerEntry(B(j, J), ae[1]), IntegerEntry(B(k, J), ae[2]), IntegerEntry(B(l, J), ae[3])] | |
142 | + | } | |
143 | + | else [DeleteEntry(B(d, J)), DeleteEntry(B(i, J)), DeleteEntry(B(j, J)), DeleteEntry(B(k, J)), DeleteEntry(B(l, J))] | |
144 | + | let af = if ((aa != 0)) | |
145 | + | then { | |
146 | + | let ag = invoke(o, "sendTokensToAddress", [U(J, Q, N, V), Z.caller.bytes], nil) | |
147 | + | if ((ag == ag)) | |
148 | + | then { | |
149 | + | let ah = { | |
150 | + | let F = ag | |
151 | + | if ($isInstanceOf(F, "Int")) | |
152 | + | then { | |
153 | + | let G = F | |
154 | + | G | |
155 | + | } | |
156 | + | else throw("Invoke issue") | |
157 | + | } | |
158 | + | let ai = (valueOrElse(getInteger(this, B(m, J)), 0) + ah) | |
159 | + | let aj = (valueOrElse(getInteger(this, B(n, z)), 0) + ah) | |
160 | + | let ak = P(Q, N) | |
161 | + | [IntegerEntry(B(m, J), ai), IntegerEntry(B(n, z), ai), IntegerEntry(B(e, aa), ak[0]), IntegerEntry(B(f, aa), ak[1]), IntegerEntry(B(g, aa), ak[2]), IntegerEntry(B(h, aa), ak[3])] | |
162 | + | } | |
163 | + | else throw("Strict value is not equal to itself.") | |
164 | + | } | |
165 | + | else nil | |
166 | + | (([IntegerEntry(B(c, J), L)] ++ ac) ++ af) | |
167 | + | } | |
168 | + | else throw("Strict value is not equal to itself.") | |
169 | + | } | |
170 | + | } | |
171 | + | } | |
172 | + | ||
173 | + | ||
174 | + | @Verifier(al) | |
175 | + | func am () = sigVerify(al.bodyBytes, al.proofs[0], al.senderPublicKey) | |
65 | 176 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "_" | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = 1000000000000000000 | |
7 | 7 | ||
8 | - | let c = " | |
8 | + | let c = "char_current_land" | |
9 | 9 | ||
10 | - | let d = " | |
10 | + | let d = "char_initial_generated_supplies" | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = "land_pyro_power" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "land_aqua_power" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "land_terra_power" | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = "land_aero_power" | |
19 | 19 | ||
20 | - | let i = "char" | |
20 | + | let i = "char_initial_pyro_share" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "char_initial_aqua_share" | |
23 | 23 | ||
24 | - | func k (l) = if ((isDataStorageUntouched(e) != false)) | |
24 | + | let k = "char_initial_terra_share" | |
25 | + | ||
26 | + | let l = "char_initial_aero_share" | |
27 | + | ||
28 | + | let m = "char_total_income" | |
29 | + | ||
30 | + | let n = "address_total_income" | |
31 | + | ||
32 | + | let o = addressFromStringValue("3MyxfwvbueUBynYHfQsutNXZNqNozGiMnsG") | |
33 | + | ||
34 | + | let p = "ecosystem_addresses" | |
35 | + | ||
36 | + | let q = "total_lands" | |
37 | + | ||
38 | + | let r = "token_emission_rate" | |
39 | + | ||
40 | + | let s = addressFromStringValue("3NA3LRSigk6knLZ16uTzcdLNow2EQZtXTaJ") | |
41 | + | ||
42 | + | let t = "owner" | |
43 | + | ||
44 | + | let u = "natural_pyro_bonus" | |
45 | + | ||
46 | + | let v = "natural_aqua_bonus" | |
47 | + | ||
48 | + | let w = "natural_terra_bonus" | |
49 | + | ||
50 | + | let x = "natural_aero_bonus" | |
51 | + | ||
52 | + | func y (z) = if ((isDataStorageUntouched(o) != false)) | |
25 | 53 | then throw("Governing app not ready") | |
26 | 54 | else { | |
27 | - | let | |
28 | - | if ((contains( | |
55 | + | let A = getStringValue(o, p) | |
56 | + | if ((contains(A, toString(z)) != false)) | |
29 | 57 | then throw("Access denied") | |
30 | - | else | |
58 | + | else true | |
31 | 59 | } | |
32 | 60 | ||
33 | 61 | ||
34 | - | func n (o,p) = ((toString(p) + a) + o) | |
62 | + | func B (C,D) = { | |
63 | + | let E = { | |
64 | + | let F = D | |
65 | + | if ($isInstanceOf(F, "Int")) | |
66 | + | then { | |
67 | + | let G = F | |
68 | + | toString(G) | |
69 | + | } | |
70 | + | else if ($isInstanceOf(F, "String")) | |
71 | + | then { | |
72 | + | let H = F | |
73 | + | H | |
74 | + | } | |
75 | + | else throw("Matching issue in with function") | |
76 | + | } | |
77 | + | ((E + a) + C) | |
78 | + | } | |
35 | 79 | ||
36 | 80 | ||
37 | - | @Callable(q) | |
38 | - | func bindCharToLand (r,s) = valueOrElse(k(q.caller), if ((getStringValue(h, n(j, r)) != toBase58String(q.caller.bytes))) | |
39 | - | then throw("Caller doesn't own this char") | |
40 | - | else if (if ((1 > s)) | |
41 | - | then true | |
42 | - | else (s > getIntegerValue(e, g))) | |
43 | - | then throw("Unknown land") | |
44 | - | else { | |
45 | - | let t = invoke(e, "getGeneratedSupplies", nil, nil) | |
46 | - | if ((t == t)) | |
47 | - | then { | |
48 | - | let u = { | |
49 | - | let v = t | |
50 | - | if ($isInstanceOf(v, "Int")) | |
51 | - | then { | |
52 | - | let w = v | |
53 | - | w | |
54 | - | } | |
55 | - | else throw("Invok result") | |
56 | - | } | |
57 | - | [IntegerEntry(n(b, r), s), IntegerEntry(n(c, r), height), IntegerEntry(n(d, r), u)] | |
58 | - | } | |
59 | - | else throw("Strict value is not equal to itself.") | |
60 | - | }) | |
81 | + | func I (J) = [getIntegerValue(s, B(u, J)), getIntegerValue(s, B(v, J)), getIntegerValue(s, B(w, J)), getIntegerValue(s, B(x, J))] | |
61 | 82 | ||
62 | 83 | ||
63 | - | @Verifier(x) | |
64 | - | func y () = sigVerify(x.bodyBytes, x.proofs[0], x.senderPublicKey) | |
84 | + | func K (L) = [valueOrElse(getInteger(this, B(e, L)), 0), valueOrElse(getInteger(this, B(f, L)), 0), valueOrElse(getInteger(this, B(g, L)), 0), valueOrElse(getInteger(this, B(h, L)), 0)] | |
85 | + | ||
86 | + | ||
87 | + | func M (L,N) = { | |
88 | + | let O = K(L) | |
89 | + | [(O[0] + N[0]), (O[1] + N[1]), (O[2] + N[2]), (O[3] + N[3])] | |
90 | + | } | |
91 | + | ||
92 | + | ||
93 | + | func P (Q,N) = [(Q[0] - N[0]), (Q[1] - N[1]), (Q[2] - N[2]), (Q[3] - N[3])] | |
94 | + | ||
95 | + | ||
96 | + | func R (S,T) = [fraction(b, S[0], T[0]), fraction(b, S[1], T[1]), fraction(b, S[2], T[2]), fraction(b, S[3], T[3])] | |
97 | + | ||
98 | + | ||
99 | + | func U (J,Q,N,V) = { | |
100 | + | let W = R(Q, N) | |
101 | + | let X = [((getIntegerValue(this, B(i, J)) + W[0]) / 2), ((getIntegerValue(this, B(j, J)) + W[1]) / 2), ((getIntegerValue(this, B(k, J)) + W[2]) / 2), ((getIntegerValue(this, B(l, J)) + W[3]) / 2)] | |
102 | + | let Y = (((V - getIntegerValue(this, B(d, J))) / getIntegerValue(o, q)) / 4) | |
103 | + | (((fraction(Y, X[0], b) + fraction(Y, X[1], b)) + fraction(Y, X[2], b)) + fraction(Y, X[3], b)) | |
104 | + | } | |
105 | + | ||
106 | + | ||
107 | + | @Callable(Z) | |
108 | + | func charMovingLand (J,L) = if ((y(Z.caller) != true)) | |
109 | + | then throw() | |
110 | + | else { | |
111 | + | let z = toBase58String(Z.caller.bytes) | |
112 | + | if ((getStringValue(s, B(t, J)) != z)) | |
113 | + | then throw("Caller doesn't own this char") | |
114 | + | else if (if ((0 > L)) | |
115 | + | then true | |
116 | + | else (L > getIntegerValue(o, q))) | |
117 | + | then throw("Not a land") | |
118 | + | else { | |
119 | + | let aa = valueOrElse(getInteger(this, B(c, J)), 0) | |
120 | + | if ((aa == L)) | |
121 | + | then throw("Char already on that land") | |
122 | + | else { | |
123 | + | let N = I(J) | |
124 | + | let Q = K(aa) | |
125 | + | let ab = invoke(o, "getGeneratedSupplies", nil, nil) | |
126 | + | if ((ab == ab)) | |
127 | + | then { | |
128 | + | let V = { | |
129 | + | let F = ab | |
130 | + | if ($isInstanceOf(F, "Int")) | |
131 | + | then { | |
132 | + | let G = F | |
133 | + | G | |
134 | + | } | |
135 | + | else throw("Bad invoke result") | |
136 | + | } | |
137 | + | let ac = if ((L != 0)) | |
138 | + | then { | |
139 | + | let ad = M(L, N) | |
140 | + | let ae = R(N, ad) | |
141 | + | [IntegerEntry(B(e, L), ad[0]), IntegerEntry(B(f, L), ad[1]), IntegerEntry(B(g, L), ad[2]), IntegerEntry(B(h, L), ad[3]), IntegerEntry(B(d, J), V), IntegerEntry(B(i, J), ae[0]), IntegerEntry(B(j, J), ae[1]), IntegerEntry(B(k, J), ae[2]), IntegerEntry(B(l, J), ae[3])] | |
142 | + | } | |
143 | + | else [DeleteEntry(B(d, J)), DeleteEntry(B(i, J)), DeleteEntry(B(j, J)), DeleteEntry(B(k, J)), DeleteEntry(B(l, J))] | |
144 | + | let af = if ((aa != 0)) | |
145 | + | then { | |
146 | + | let ag = invoke(o, "sendTokensToAddress", [U(J, Q, N, V), Z.caller.bytes], nil) | |
147 | + | if ((ag == ag)) | |
148 | + | then { | |
149 | + | let ah = { | |
150 | + | let F = ag | |
151 | + | if ($isInstanceOf(F, "Int")) | |
152 | + | then { | |
153 | + | let G = F | |
154 | + | G | |
155 | + | } | |
156 | + | else throw("Invoke issue") | |
157 | + | } | |
158 | + | let ai = (valueOrElse(getInteger(this, B(m, J)), 0) + ah) | |
159 | + | let aj = (valueOrElse(getInteger(this, B(n, z)), 0) + ah) | |
160 | + | let ak = P(Q, N) | |
161 | + | [IntegerEntry(B(m, J), ai), IntegerEntry(B(n, z), ai), IntegerEntry(B(e, aa), ak[0]), IntegerEntry(B(f, aa), ak[1]), IntegerEntry(B(g, aa), ak[2]), IntegerEntry(B(h, aa), ak[3])] | |
162 | + | } | |
163 | + | else throw("Strict value is not equal to itself.") | |
164 | + | } | |
165 | + | else nil | |
166 | + | (([IntegerEntry(B(c, J), L)] ++ ac) ++ af) | |
167 | + | } | |
168 | + | else throw("Strict value is not equal to itself.") | |
169 | + | } | |
170 | + | } | |
171 | + | } | |
172 | + | ||
173 | + | ||
174 | + | @Verifier(al) | |
175 | + | func am () = sigVerify(al.bodyBytes, al.proofs[0], al.senderPublicKey) | |
65 | 176 |
github/deemru/w8io/169f3d6 49.70 ms ◑