tx · 36xSmKofvKM8LbnBeoyrcCDRFscrC33tdBLRPmJLm28q

3P8v4dR4UD8nGeLQmorw6BmCo424GvGBXCA:  -0.01400000 Waves

2021.01.19 23:14 [2424524] smart account 3P8v4dR4UD8nGeLQmorw6BmCo424GvGBXCA > SELF 0.00000000 Waves

{ "type": 13, "id": "36xSmKofvKM8LbnBeoyrcCDRFscrC33tdBLRPmJLm28q", "fee": 1400000, "feeAssetId": null, "timestamp": 1611087201120, "version": 1, "sender": "3P8v4dR4UD8nGeLQmorw6BmCo424GvGBXCA", "senderPublicKey": "5gGSWjBNTQGAMZViHK3qbn35JUNmbzqboicpdMuweapK", "proofs": [ "4fikXuYEDwV8XDiFdYFvieVDQCr6MV9PDcPyjgYSWpefnfBxqPVnDxRzhXXNLQSV9JXwwEnYQu2pe8cjtFASewEA", "245sarnfgqwXaRZRsuxoXCmVTAvb1b9VZVQhLhf3bfqQPvKYrYjrtuJygnvweCYY6jPC4AVwp4ytqBSjvKK3t95g" ], "script": "base64:AAIEAAAAAAAAABkIAhIDCgEBEgASDAoKAgICAgICAgICAhIAAAAAJwAAAAANU2NyaXB0VmVyc2lvbgIAAAATMi4xLjUtYmV0YV8yMDIxMDExOQAAAAAHcGVyY2VudAAAAAAAAAAnEAAAAAAHdXNkTXVsdAAAAAAAAA9CQAAAAAAHZGVjTXVsdAAAAAAABfXhAAAAAAAHb25lV2VlawkAAGgAAAACAAAAAAAACTqAAAAAAAAAAAPoAAAAAAlmaGZzUHJpY2UJAABoAAAAAgAAAAAAAAAAZAUAAAAHdXNkTXVsdAAAAAALbWFpblBlcmNlbnQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAUBQAAAAdwZXJjZW50AAAAAAAAAABkAAAAAA5hZG1pblB1YmxpY0tleQEAAAAg/80L/cbafiMInJkqv+2Ad6sxfHWERCnAfK19W9oTVwMAAAAADnJvYm90UHVibGljS2V5AQAAACD/zQv9xtp+IwicmSq/7YB3qzF8dYREKcB8rX1b2hNXAwAAAAAOd2V4Y2hQdWJsaWNLZXkBAAAAIIAKtroM3gxerJBtUzvV4/Tc4iQv++nOA7a6Q5y/1XtuAAAAAApndWFyYW50b3JzCQAETQAAAAIJAARMAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBwAAAACBQAAAAR0aGlzAgAAAApndWFyYW50b3IxAQAAAAAJAARMAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBwAAAACBQAAAAR0aGlzAgAAAApndWFyYW50b3IyAQAAAAAJAARMAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBwAAAACBQAAAAR0aGlzAgAAAApndWFyYW50b3IzAQAAAAAFAAAAA25pbAEAAAAAAAAAAAphY3R1YWxTaXplCQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAACmd1YXJhbnRvcnMBAAAAAAAAAAANbWluU2lnbmF0dXJlcwkAAGQAAAACCQAAaQAAAAIFAAAACmFjdHVhbFNpemUAAAAAAAAAAAIJAABqAAAAAgUAAAAKYWN0dWFsU2l6ZQAAAAAAAAAAAgAAAAAJdXNkdEFzc2V0AQAAACAelAcTUnahJZX9yGGogl8Qf986Tym7/JpGP1r9Nk+fkQAAAAAJdXNkY0Fzc2V0AQAAACBSM9nhl4gm5eIfwv3qiDS4h3ajjLGD78hgHH4KElQmJQAAAAAJZmhmc0Fzc2V0AQAAACA6kDhBREMfdNDw4zLOH1AMAY1hkZO9p9M2GITjRgVzgQAAAAAJcmF0c0Fzc2V0AQAAACAIOYGxWlIlh++GLuwkwPCbXUCLcGPeWkWTWf862u6vuAAAAAAJeGZlZUFzc2V0AQAAACA+2qmjbn4AEfAHjAE9xd4ujUcxO50YQTjeLDrmHq62NwAAAAAJcG9ydGZvbGlvCQAETAAAAAIBAAAAIB6UBxNSdqEllf3IYaiCXxB/3zpPKbv8mkY/Wv02T5+RCQAETAAAAAIBAAAAIGz6av/F7aqMC3+1KpPSogwvgoLbdHoEjFP7/RMfc6D/CQAETAAAAAIBAAAAIC4gw/bqip+JUbu/6IgREzbsftjCQgNyZQ1YzXMmQmWCCQAETAAAAAIBAAAAIA6xAmoMPp9H9+RGlOdOtre8Q3x+ZWnQ6RibIuYJ8ujOCQAETAAAAAIBAAAAIPYeNkLTl93yWlgVIO4sD9otRgaKgDaSrlWJWZ6wxSyhCQAETAAAAAIBAAAAIJVTIBcyx/f4MW1SqI21WdPP6/Jz7ZRxV+WdJufOh2rgCQAETAAAAAIBAAAAIEMY9Bt1UjCPu/oiZL8EKE63pKHJnG4Ygp3RBr/LwCQCCQAETAAAAAIBAAAAIKFSWtVJ1nG6w68fhsmSf+oPilocH5ikK3MGjsya/tVnBQAAAANuaWwAAAAACW91ckFzc2V0cwkABEwAAAACBQAAAAlmaGZzQXNzZXQJAARMAAAAAgUAAAAJeGZlZUFzc2V0CQAETAAAAAIFAAAACXJhdHNBc3NldAUAAAADbmlsAAAAAAltYWpvclNpemUAAAAAAAAAAAEAAAAACW1ham9yTXVsdAAAAAAAAAAAAgAAAAAHYWx0TXVsdAkAAGgAAAACBQAAAAltYWpvck11bHQJAABlAAAAAgkAAZAAAAABBQAAAAlwb3J0Zm9saW8FAAAACW1ham9yU2l6ZQAAAAAFYWRtaW4JAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVfK8FMYnc+eIGLh09VaqNvL6A9/0AfaxDUAAAAABWZtYWluCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXiLucC1xbXl/s/fiQu0BncvWJiMciO2L/AAAAAAVmY29sZAkBAAAAB0FkZHJlc3MAAAABAQAAABoBV0ygump5UhpW60FMck0UN7q3M1g/l45MnwAAAAAFZnJhdHMJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVexf5Yr1VHZNvQXHjIVnOjDoJ9Kua8wUGkAAAAACWZoZnNUb3RhbAkAAGQAAAACCQAD8AAAAAIFAAAABWZtYWluBQAAAAlmaGZzQXNzZXQJAAPwAAAAAgUAAAAFZmNvbGQFAAAACWZoZnNBc3NldAAAAAAJZmhmc0Z1bmRzCQAAZQAAAAIICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEFAAAACWZoZnNBc3NldAAAAAhxdWFudGl0eQUAAAAJZmhmc1RvdGFsAAAAAAlyYXRzVG90YWwJAABkAAAAAgkAA/AAAAACBQAAAAVmcmF0cwUAAAAJcmF0c0Fzc2V0CQAD8AAAAAIFAAAABWZjb2xkBQAAAAlyYXRzQXNzZXQAAAAACXJhdHNGdW5kcwkAAGUAAAACCAkBAAAABXZhbHVlAAAAAQkAA+wAAAABBQAAAAlyYXRzQXNzZXQAAAAIcXVhbnRpdHkFAAAACXJhdHNUb3RhbAAAAAAJdXNkeEZ1bmRzCQAAZAAAAAIJAAPwAAAAAgUAAAAFZnJhdHMFAAAACXVzZHRBc3NldAkAA/AAAAACBQAAAAVmcmF0cwUAAAAJdXNkY0Fzc2V0AQAAAAVyb3VuZAAAAAEAAAAEeFZhbAkAAGkAAAACCQAAZAAAAAIFAAAABHhWYWwAAAAAAAAAAAEAAAAAAAAAAAIBAAAADWZyYWN0aW9uUm91bmQAAAADAAAAA3ZhbAAAAANudW0AAAADZGVuCQEAAAAFcm91bmQAAAABCQAAawAAAAMJAABoAAAAAgAAAAAAAAAAAgUAAAADdmFsBQAAAANudW0FAAAAA2RlbgEAAAAOdmFsdWVPck1pbmltdW0AAAACAAAAA3ZhbAAAAAZtaW5WYWwDCQAAZgAAAAIFAAAABm1pblZhbAUAAAADdmFsBQAAAAZtaW5WYWwFAAAAA3ZhbAEAAAAQdG9EYXRlVGltZVN0cmluZwAAAAEAAAAJdGltZXN0YW1wBAAAAAJzcAkAAZsAAAABAgAAAAEgBAAAAAJ6ZAkAAZsAAAABAgAAAAQgVVRDBAAAAARub3JtCQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgAAAAAAAAAAHwkABEwAAAACAAAAAAAAAAA7CQAETAAAAAIAAAAAAAAAAFoJAARMAAAAAgAAAAAAAAAAeAkABEwAAAACAAAAAAAAAACXCQAETAAAAAIAAAAAAAAAALUJAARMAAAAAgAAAAAAAAAA1AkABEwAAAACAAAAAAAAAADzCQAETAAAAAIAAAAAAAAAAREJAARMAAAAAgAAAAAAAAABMAkABEwAAAACAAAAAAAAAAFOCQAETAAAAAIAAAAAAAAAAW0FAAAAA25pbAQAAAAEbGVhcAkABEwAAAACAAAAAAAAAAAACQAETAAAAAIAAAAAAAAAAB8JAARMAAAAAgAAAAAAAAAAPAkABEwAAAACAAAAAAAAAABbCQAETAAAAAIAAAAAAAAAAHkJAARMAAAAAgAAAAAAAAAAmAkABEwAAAACAAAAAAAAAAC2CQAETAAAAAIAAAAAAAAAANUJAARMAAAAAgAAAAAAAAAA9AkABEwAAAACAAAAAAAAAAESCQAETAAAAAIAAAAAAAAAATEJAARMAAAAAgAAAAAAAAABTwkABEwAAAACAAAAAAAAAAFuBQAAAANuaWwEAAAABWVwb2NoCQAAZAAAAAIJAABkAAAAAgkAAGUAAAACCQAAZAAAAAIJAABoAAAAAgAAAAAAAAAHsQAAAAAAAAABbQkAAGkAAAACAAAAAAAAAAexAAAAAAAAAAAECQAAaQAAAAIAAAAAAAAAB7EAAAAAAAAAAGQJAABpAAAAAgAAAAAAAAAHsQAAAAAAAAABkAAAAAAAAAABbgQAAAACY2UJAABkAAAAAgUAAAAJdGltZXN0YW1wCQAAaAAAAAIJAABoAAAAAgUAAAAFZXBvY2gAAAAAAAABUYAAAAAAAAAAA+gDCQAAZgAAAAIJAABoAAAAAgD////9KBM4gAAAAAAAAAAD6AUAAAAJdGltZXN0YW1wCQAAAgAAAAECAAAANklTTyA4NjAxOiBPbmx5IHllYXJzIGFmdGVyIDE1ODMgaW5jbHVzaXZlIGFyZSBhbGxvd2VkIQQAAAAEZGF0ZQQAAAAEeXl5eQkAAGUAAAACCQAAaQAAAAIFAAAAAmNlCQAAaAAAAAIAAAAAAAHhhVgAAAAAAAAAA+gAAAAAAAAAAAEEAAAAA3l0ZAkAAGUAAAACCQAAaQAAAAIFAAAAAmNlCQAAaAAAAAIAAAAAAAABUYAAAAAAAAAAA+gJAABkAAAAAgkAAGQAAAACCQAAZQAAAAIJAABkAAAAAgkAAGgAAAACBQAAAAR5eXl5AAAAAAAAAAFtCQAAaQAAAAIFAAAABHl5eXkAAAAAAAAAAAQJAABpAAAAAgUAAAAEeXl5eQAAAAAAAAAAZAkAAGkAAAACBQAAAAR5eXl5AAAAAAAAAAGQAAAAAAAAAAFuBAAAAAZtb250aHMDAwMJAAAAAAAAAgkAAGoAAAACCQAAZAAAAAIFAAAABHl5eXkAAAAAAAAAAAEAAAAAAAAAAAQAAAAAAAAAAAAJAQAAAAIhPQAAAAIJAABqAAAAAgkAAGQAAAACBQAAAAR5eXl5AAAAAAAAAAABAAAAAAAAAABkAAAAAAAAAAAABwYJAAAAAAAAAgkAAGoAAAACCQAAZAAAAAIFAAAABHl5eXkAAAAAAAAAAAEAAAAAAAAAAZAAAAAAAAAAAAAFAAAABGxlYXAFAAAABG5vcm0EAAAAAm1tAwMJAABmAAAAAgAAAAAAAAAAAAUAAAADeXRkBgkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAMCQAAAgAAAAECAAAALFVuZXhwZWN0ZWQgZXJyb3I6IFZhbHVlIG92ZXJmbG93IGZvciBtb250aHMhAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAALAAAAAAAAAAALAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAKAAAAAAAAAAAKAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAJAAAAAAAAAAAJAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAIAAAAAAAAAAAIAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAHAAAAAAAAAAAHAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAGAAAAAAAAAAAGAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAFAAAAAAAAAAAFAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAAEAAAAAAAAAAAEAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAADAAAAAAAAAAADAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAACAAAAAAAAAAACAwkAAGcAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzAAAAAAAAAAABAAAAAAAAAAABAAAAAAAAAAAABAAAAAJkZAkAAGUAAAACBQAAAAN5dGQJAAGRAAAAAgUAAAAGbW9udGhzBQAAAAJtbQkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAygAAAAIJAAGbAAAAAQkAAaQAAAABCQAAZAAAAAIFAAAABHl5eXkAAAAAAAAAAAEAAAAAAAAAAAABAAAAAS0JAADKAAAAAgkAAZsAAAABCQABpAAAAAEJAABkAAAAAgUAAAACbW0AAAAAAAAAAGUAAAAAAAAAAAEBAAAAAS0JAADKAAAAAgkAAZsAAAABCQABpAAAAAEJAABkAAAAAgUAAAACZGQAAAAAAAAAAGUAAAAAAAAAAAEEAAAABHRpbWUEAAAAAnJkCQAAagAAAAIFAAAAAmNlCQAAaAAAAAIAAAAAAAABUYAAAAAAAAAAA+gEAAAAAmhoCQAAaQAAAAIFAAAAAnJkCQAAaAAAAAIAAAAAAAAADhAAAAAAAAAAA+gEAAAAAnJoCQAAagAAAAIFAAAAAnJkCQAAaAAAAAIAAAAAAAAADhAAAAAAAAAAA+gEAAAAAm1tCQAAaQAAAAIFAAAAAnJoCQAAaAAAAAIAAAAAAAAAADwAAAAAAAAAA+gEAAAAAnJtCQAAagAAAAIFAAAAAnJoCQAAaAAAAAIAAAAAAAAAADwAAAAAAAAAA+gEAAAAAnNzCQAAaQAAAAIFAAAAAnJtAAAAAAAAAAPoBAAAAAJtcwkAAGoAAAACBQAAAAJybQAAAAAAAAAD6AkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAygAAAAIJAAGbAAAAAQkAAaQAAAABCQAAZAAAAAIFAAAAAmhoAAAAAAAAAABkAAAAAAAAAAABAQAAAAE6CQAAygAAAAIJAAGbAAAAAQkAAaQAAAABCQAAZAAAAAIFAAAAAm1tAAAAAAAAAABkAAAAAAAAAAABAQAAAAE6CQAAygAAAAIJAAGbAAAAAQkAAaQAAAABCQAAZAAAAAIFAAAAAnNzAAAAAAAAAABkAAAAAAAAAAABCQAEsAAAAAEJAADLAAAAAgkAAMsAAAACCQAAywAAAAIFAAAABGRhdGUFAAAAAnNwBQAAAAR0aW1lBQAAAAJ6ZAEAAAAOYWRtaW5UaW1lc3RhbXAAAAABAAAACXB1YmxpY0tleQMJAQAAAAIhPQAAAAIFAAAACXB1YmxpY0tleQUAAAAOYWRtaW5QdWJsaWNLZXkFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAJdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAADbmlsAQAAAAxleGNlc3NBbW91bnQAAAABAAAAB2Fzc2V0SWQEAAAACmZtYWluRnVuZHMJAAPwAAAAAgUAAAAFZm1haW4FAAAAB2Fzc2V0SWQEAAAACnRvdGFsRnVuZHMJAABkAAAAAgUAAAAKZm1haW5GdW5kcwkAA/AAAAACBQAAAAVmY29sZAUAAAAHYXNzZXRJZAkBAAAADnZhbHVlT3JNaW5pbXVtAAAAAgkAAGUAAAACCQAAawAAAAMFAAAACnRvdGFsRnVuZHMFAAAAC21haW5QZXJjZW50BQAAAAdwZXJjZW50BQAAAApmbWFpbkZ1bmRzAAAAAAAAAAAAAQAAAA5haXJkcm9wQmFsYW5jZQAAAAEAAAAHYXNzZXRJZAMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETgAAAAIFAAAACXBvcnRmb2xpbwUAAAAJb3VyQXNzZXRzBQAAAAdhc3NldElkCQAAAgAAAAEJAAS5AAAAAgkABEwAAAACAgAAABNBaXJkcm9wV2FzaGVyICgpID0+CQAETAAAAAICAAAAG1BsZWFzZSByZW1vdmUgdGhlIGFzc2V0IElEOgkABEwAAAACCQACWAAAAAEFAAAAB2Fzc2V0SWQFAAAAA25pbAIAAAABIAMJAAAAAAAAAgUAAAAHYXNzZXRJZAEAAAAAAAAAAAAAAAAACQAD8AAAAAIFAAAABHRoaXMFAAAAB2Fzc2V0SWQAAAAEAAAAAWkBAAAADUF1dG9GaXhQcm9maXQAAAABAAAAB25ld011bHQEAAAACW9sZFByb2ZpdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzAgAAAAtmaXhlZFByb2ZpdAAAAAAAAAAAAAQAAAALcmlza1BlcmNlbnQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAALcmlza1BlcmNlbnQJAABpAAAAAgUAAAAHcGVyY2VudAAAAAAAAAAAZAQAAAAJdXNkdEZ1bmRzCQAAawAAAAMFAAAACWZoZnNGdW5kcwUAAAAJZmhmc1ByaWNlBQAAAAdkZWNNdWx0BAAAAApyaXNrQW1vdW50CQAAawAAAAMFAAAACXVzZHRGdW5kcwUAAAALcmlza1BlcmNlbnQJAABoAAAAAgUAAAAHYWx0TXVsdAUAAAAHcGVyY2VudAQAAAAHbWluTXVsdAkAAGQAAAACCQAAaQAAAAIFAAAACW9sZFByb2ZpdAUAAAAKcmlza0Ftb3VudAAAAAAAAAAAAQQAAAAJbmV3UHJvZml0CQAAaAAAAAIFAAAAB25ld011bHQFAAAACnJpc2tBbW91bnQEAAAACnVzZHRBbW91bnQJAQAAAA52YWx1ZU9yTWluaW11bQAAAAIJAABlAAAAAgUAAAAJbmV3UHJvZml0BQAAAAlvbGRQcm9maXQAAAAAAAAAAAAEAAAACnJhdHNBbW91bnQJAQAAAA1mcmFjdGlvblJvdW5kAAAAAwUAAAAKdXNkdEFtb3VudAUAAAAJcmF0c0Z1bmRzBQAAAAl1c2R4RnVuZHMDCQAAZgAAAAIFAAAAB21pbk11bHQFAAAAB25ld011bHQJAAACAAAAAQkABLkAAAACCQAETAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9BdXRvRml4UHJvZml0ICgJAAGkAAAAAQUAAAAHbmV3TXVsdAIAAAAEKSA9PgkABEwAAAACAgAAAB9JbmF2bGlkIHZhbHVlISBNaW4uIG11bHRpcGxpZXI6CQAETAAAAAIJAAGkAAAAAQUAAAAHbWluTXVsdAUAAAADbmlsAgAAAAEgAwkAAGYAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAEJAAS5AAAAAgkABEwAAAACAgAAABZBdXRvRml4UHJvZml0ICguLi4pID0+CQAETAAAAAICAAAAM0Rvbid0IGF0dGFjaCBwYXltZW50IHdoZW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIC4uLgUAAAADbmlsAgAAAAEgAwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAOYWRtaW5QdWJsaWNLZXkJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAOcm9ib3RQdWJsaWNLZXkHCQAAAgAAAAEJAAS5AAAAAgkABEwAAAACAgAAABZBdXRvRml4UHJvZml0ICguLi4pID0+CQAETAAAAAICAAAANlRoaXMgYWN0aW9uIGNhbiBvbmx5IGJlIHBlcmZvcm1lZCBieSBhbiBhZG1pbmlzdHJhdG9yIQUAAAADbmlsAgAAAAEgCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC2ZpeGVkUHJvZml0BQAAAAluZXdQcm9maXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZnJhdHMFAAAACnVzZHRBbW91bnQFAAAACXVzZHRBc3NldAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVmbWFpbgUAAAAKcmF0c0Ftb3VudAUAAAAJcmF0c0Fzc2V0BQAAAANuaWwJAQAAAA5hZG1pblRpbWVzdGFtcAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQAAAAFpAQAAAA1BdXRvUmViYWxhbmNlAAAAAAQAAAAKZmhmc1N1cHBseQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAVmbWFpbgIAAAAKZmhmc1N1cHBseQkAAGgAAAACAAAAAAAAAABkBQAAAAdkZWNNdWx0BAAAABBmaGZzRXhjZXNzQW1vdW50CQEAAAAOdmFsdWVPck1pbmltdW0AAAACCQAAZQAAAAIFAAAACmZoZnNTdXBwbHkJAAPwAAAAAgUAAAAFZm1haW4FAAAACWZoZnNBc3NldAAAAAAAAAAAAAMJAABmAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABCQAEuQAAAAIJAARMAAAAAgIAAAATQXV0b1JlYmFsYW5jZSAoKSA9PgkABEwAAAACAgAAADNEb24ndCBhdHRhY2ggcGF5bWVudCB3aGVuIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiAuLi4FAAAAA25pbAIAAAABIAMDCQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADmFkbWluUHVibGljS2V5CQEAAAACIT0AAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAADnJvYm90UHVibGljS2V5BwkAAAIAAAABCQAEuQAAAAIJAARMAAAAAgIAAAATQXV0b1JlYmFsYW5jZSAoKSA9PgkABEwAAAACAgAAADZUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgYW4gYWRtaW5pc3RyYXRvciEFAAAAA25pbAIAAAABIAkABE4AAAACCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWZtYWluBQAAABBmaGZzRXhjZXNzQW1vdW50BQAAAAlmaGZzQXNzZXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAAAAkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAAAQkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAAAgkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAAAwkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABAkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABQkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABgkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAQAAAAxleGNlc3NBbW91bnQAAAABCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABwkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAcFAAAAA25pbAkBAAAADmFkbWluVGltZXN0YW1wAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5AAAAAWkBAAAADUFpcmRyb3BXYXNoZXIAAAAKAAAAA2lkMAAAAANpZDEAAAADaWQyAAAAA2lkMwAAAANpZDQAAAADaWQ1AAAAA2lkNgAAAANpZDcAAAADaWQ4AAAAA2lkOQMJAABmAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABCQAEuQAAAAIJAARMAAAAAgIAAAAWQWlyZHJvcFdhc2hlciAoLi4uKSA9PgkABEwAAAACAgAAADNEb24ndCBhdHRhY2ggcGF5bWVudCB3aGVuIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiAuLi4FAAAAA25pbAIAAAABIAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAAOYWRtaW5QdWJsaWNLZXkJAAACAAAAAQkABLkAAAACCQAETAAAAAICAAAAFkFpcmRyb3BXYXNoZXIgKC4uLikgPT4JAARMAAAAAgIAAAA2VGhpcyBhY3Rpb24gY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGJ5IGFuIGFkbWluaXN0cmF0b3IhBQAAAANuaWwCAAAAASAJAAROAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVhZG1pbgkBAAAADmFpcmRyb3BCYWxhbmNlAAAAAQUAAAADaWQwBQAAAANpZDAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFYWRtaW4JAQAAAA5haXJkcm9wQmFsYW5jZQAAAAEFAAAAA2lkMQUAAAADaWQxCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWFkbWluCQEAAAAOYWlyZHJvcEJhbGFuY2UAAAABBQAAAANpZDIFAAAAA2lkMgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVhZG1pbgkBAAAADmFpcmRyb3BCYWxhbmNlAAAAAQUAAAADaWQzBQAAAANpZDMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFYWRtaW4JAQAAAA5haXJkcm9wQmFsYW5jZQAAAAEFAAAAA2lkNAUAAAADaWQ0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWFkbWluCQEAAAAOYWlyZHJvcEJhbGFuY2UAAAABBQAAAANpZDUFAAAAA2lkNQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVhZG1pbgkBAAAADmFpcmRyb3BCYWxhbmNlAAAAAQUAAAADaWQ2BQAAAANpZDYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFYWRtaW4JAQAAAA5haXJkcm9wQmFsYW5jZQAAAAEFAAAAA2lkNwUAAAADaWQ3CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWFkbWluCQEAAAAOYWlyZHJvcEJhbGFuY2UAAAABBQAAAANpZDgFAAAAA2lkOAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVhZG1pbgkBAAAADmFpcmRyb3BCYWxhbmNlAAAAAQUAAAADaWQ5BQAAAANpZDkFAAAAA25pbAkBAAAADmFkbWluVGltZXN0YW1wAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5AAAAAWkBAAAADUVtZXJnZW5jeUV4aXQAAAAABAAAAAxtaW5UaW1lc3RhbXAJAABkAAAAAgkAAZYAAAABCQAETAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAFZm1haW4CAAAACXRpbWVzdGFtcAAAAAAAAAAAAAkABEwAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABWZjb2xkAgAAAAl0aW1lc3RhbXAAAAAAAAAAAAAJAARMAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAVmcmF0cwIAAAAJdGltZXN0YW1wAAAAAAAAAAAABQAAAANuaWwFAAAAB29uZVdlZWsEAAAAB2lzQWRtaW4JAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAA5hZG1pblB1YmxpY0tleQQAAAALaXNFbWVyZ2VuY3kJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwIAAAAJZW1lcmdlbmN5BwMDCQEAAAABIQAAAAEFAAAAB2lzQWRtaW4FAAAAC2lzRW1lcmdlbmN5BwkAAAIAAAABCQAEuQAAAAIJAARMAAAAAgIAAAATRW1lcmdlbmN5RXhpdCAoKSA9PgkABEwAAAACAgAAACxUaGUgZW1lcmdlbmN5IHByb2NlZHVyZSBoYXMgYWxyZWFkeSBzdGFydGVkIQUAAAADbmlsAgAAAAEgAwMJAQAAAAEhAAAAAQUAAAALaXNFbWVyZ2VuY3kJAABmAAAAAgUAAAAMbWluVGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAcJAAACAAAAAQkABLkAAAACCQAETAAAAAICAAAAE0VtZXJnZW5jeUV4aXQgKCkgPT4JAARMAAAAAgIAAAAfV2lsbCBiZSBhbGxvd2VkIGFmdGVyIHRoZSBkYXRlOgkABEwAAAACCQEAAAAQdG9EYXRlVGltZVN0cmluZwAAAAEFAAAADG1pblRpbWVzdGFtcAUAAAADbmlsAgAAAAEgAwkAAGYAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAEJAAS5AAAAAgkABEwAAAACAgAAABNFbWVyZ2VuY3lFeGl0ICgpID0+CQAETAAAAAICAAAAM0Rvbid0IGF0dGFjaCBwYXltZW50IHdoZW4gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIC4uLgUAAAADbmlsAgAAAAEgAwMJAQAAAAEhAAAAAQUAAAAHaXNBZG1pbgkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAKZ3VhcmFudG9ycwgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BwkAAAIAAAABCQAEuQAAAAIJAARMAAAAAgIAAAATRW1lcmdlbmN5RXhpdCAoKSA9PgkABEwAAAACAgAAADtUaGlzIGFjdGlvbiBjYW4gb25seSBiZSBwZXJmb3JtZWQgYnkgb25lIG9mIHRoZSBndWFyYW50b3JzIQUAAAADbmlsAgAAAAEgCQAETgAAAAIJAARNAAAAAgMFAAAAB2lzQWRtaW4FAAAAA25pbAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVmbWFpbgkAA/AAAAACBQAAAAVmY29sZAkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAAJAAGRAAAAAgUAAAAJcG9ydGZvbGlvAAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWZtYWluCQAD8AAAAAIFAAAABWZjb2xkCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAAAQkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAAPwAAAAAgUAAAAFZmNvbGQJAAGRAAAAAgUAAAAJcG9ydGZvbGlvAAAAAAAAAAACCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAAAgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVmbWFpbgkAA/AAAAACBQAAAAVmY29sZAkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAMJAAGRAAAAAgUAAAAJcG9ydGZvbGlvAAAAAAAAAAADCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWZtYWluCQAD8AAAAAIFAAAABWZjb2xkCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABAkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAFZm1haW4JAAPwAAAAAgUAAAAFZmNvbGQJAAGRAAAAAgUAAAAJcG9ydGZvbGlvAAAAAAAAAAAFCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAVmbWFpbgkAA/AAAAACBQAAAAVmY29sZAkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAYJAAGRAAAAAgUAAAAJcG9ydGZvbGlvAAAAAAAAAAAGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABWZtYWluCQAD8AAAAAIFAAAABWZjb2xkCQABkQAAAAIFAAAACXBvcnRmb2xpbwAAAAAAAAAABwkAAZEAAAACBQAAAAlwb3J0Zm9saW8AAAAAAAAAAAcFAAAAA25pbAkBAAAADEJvb2xlYW5FbnRyeQAAAAICAAAACWVtZXJnZW5jeQkBAAAAASEAAAABBQAAAAdpc0FkbWluCQEAAAAOYWRtaW5UaW1lc3RhbXAAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAxpc1ZhbGlkT3duZXIJAAnGAAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAxpc1ZhbGlkQWRtaW4DBQAAAAxpc1ZhbGlkT3duZXIGCQAJxgAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAOYWRtaW5QdWJsaWNLZXkEAAAADGlzVmFsaWRSb2JvdAMFAAAADGlzVmFsaWRPd25lcgYJAAnGAAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAA5yb2JvdFB1YmxpY0tleQQAAAARaXNWYWxpZEd1YXJhbnRvcnMJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIDCQAJxgAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQkAAZEAAAACBQAAAApndWFyYW50b3JzAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAwkACcYAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIJAAGRAAAAAgUAAAAKZ3VhcmFudG9ycwAAAAAAAAAAAQAAAAAAAAAAAQAAAAAAAAAAAAMJAAnGAAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAADCQABkQAAAAIFAAAACmd1YXJhbnRvcnMAAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAAAAFAAAADW1pblNpZ25hdHVyZXMEAAAAByRtYXRjaDAFAAAAAnR4AwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAWTGVhc2VDYW5jZWxUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAQTGVhc2VUcmFuc2FjdGlvbgUAAAAMaXNWYWxpZE93bmVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9CdXJuVHJhbnNhY3Rpb24EAAAAAWIFAAAAByRtYXRjaDADAwUAAAAMaXNWYWxpZE93bmVyCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAlwb3J0Zm9saW8IBQAAAAFiAAAAB2Fzc2V0SWQHCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAlvdXJBc3NldHMIBQAAAAFiAAAAB2Fzc2V0SWQHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVPcmRlcgQAAAABbwUAAAAHJG1hdGNoMAMDAwMDBQAAAAxpc1ZhbGlkUm9ib3QJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFvAAAAEW1hdGNoZXJGZWVBc3NldElkBwkAAAAAAAACCAUAAAABbwAAABBtYXRjaGVyUHVibGljS2V5BQAAAA53ZXhjaFB1YmxpY0tleQcDAwMJAAAAAAAAAggFAAAAAW8AAAAJb3JkZXJUeXBlBQAAAANCdXkJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAACXBvcnRmb2xpbwgIBQAAAAFvAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BwYDCQAAAAAAAAIIBQAAAAFvAAAACW9yZGVyVHlwZQUAAAAEU2VsbAkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJcG9ydGZvbGlvCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BwYDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAlwb3J0Zm9saW8ICAUAAAABbwAAAAlhc3NldFBhaXIAAAAKcHJpY2VBc3NldAkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJcG9ydGZvbGlvCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BwcJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIFAAAACW91ckFzc2V0cwgIBQAAAAFvAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJb3VyQXNzZXRzCAgFAAAAAW8AAAAJYXNzZXRQYWlyAAAAC2Ftb3VudEFzc2V0BwMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF01hc3NUcmFuc2ZlclRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAF0BQAAAAckbWF0Y2gwAwMDBQAAAAxpc1ZhbGlkQWRtaW4FAAAAEWlzVmFsaWRHdWFyYW50b3JzBwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJcG9ydGZvbGlvCAUAAAABdAAAAAdhc3NldElkBwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJcG9ydGZvbGlvCAUAAAABdAAAAApmZWVBc3NldElkBwMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24DBQAAAAxpc1ZhbGlkQWRtaW4FAAAAEWlzVmFsaWRHdWFyYW50b3JzBwcQB867", "chainId": 87, "height": 2424524, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DKSYBL9eatuVUZFHXBMVt1RofFbNoL5ZHSdgZAUYWcXP Next: EDDxcEvZJ5FLtnhSSvAtFT79xp8bLQazEWR5CeQLBEGb Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ScriptVersion = "2.1.4-beta_20210119"
4+let ScriptVersion = "2.1.5-beta_20210119"
55
66 let percent = 10000
77
7676 else val
7777
7878
79-func adminTimestamp (publicKey) = if ((publicKey != adminPublicKey))
80- then nil
81- else [IntegerEntry("timestamp", lastBlock.timestamp)]
82-
83-
84-func excessAmount (assetId) = {
85- let fmainFunds = assetBalance(fmain, assetId)
86- let totalFunds = (fmainFunds + assetBalance(fcold, assetId))
87- valueOrMinimum((fraction(totalFunds, mainPercent, percent) - fmainFunds), 0)
88- }
89-
90-
91-func airdropBalance (assetId) = if (containsElement((portfolio ++ ourAssets), assetId))
92- then throw(makeString(["AirdropWasher () =>", "Please remove the asset ID:", toBase58String(assetId)], " "))
93- else if ((assetId == base58''))
94- then 0
95- else assetBalance(this, assetId)
96-
97-
9879 func toDateTimeString (timestamp) = {
9980 let sp = toBytes(" ")
10081 let zd = toBytes(" UTC")
158139 toUtf8String((((date + sp) + time) + zd))
159140 }
160141 }
142+
143+
144+func adminTimestamp (publicKey) = if ((publicKey != adminPublicKey))
145+ then nil
146+ else [IntegerEntry("timestamp", lastBlock.timestamp)]
147+
148+
149+func excessAmount (assetId) = {
150+ let fmainFunds = assetBalance(fmain, assetId)
151+ let totalFunds = (fmainFunds + assetBalance(fcold, assetId))
152+ valueOrMinimum((fraction(totalFunds, mainPercent, percent) - fmainFunds), 0)
153+ }
154+
155+
156+func airdropBalance (assetId) = if (containsElement((portfolio ++ ourAssets), assetId))
157+ then throw(makeString(["AirdropWasher () =>", "Please remove the asset ID:", toBase58String(assetId)], " "))
158+ else if ((assetId == base58''))
159+ then 0
160+ else assetBalance(this, assetId)
161161
162162
163163 @Callable(i)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ScriptVersion = "2.1.4-beta_20210119"
4+let ScriptVersion = "2.1.5-beta_20210119"
55
66 let percent = 10000
77
88 let usdMult = 1000000
99
1010 let decMult = 100000000
1111
1212 let oneWeek = (604800 * 1000)
1313
1414 let fhfsPrice = (100 * usdMult)
1515
1616 let mainPercent = ((20 * percent) / 100)
1717
1818 let adminPublicKey = base58'JDYJq5RKnSXKLYUQfL89zWPdM3QH5hW8JUTpjnTYV95k'
1919
2020 let robotPublicKey = base58'JDYJq5RKnSXKLYUQfL89zWPdM3QH5hW8JUTpjnTYV95k'
2121
2222 let wexchPublicKey = base58'9cpfKN9suPNvfeUNphzxXMjcnn974eme8ZhWUjaktzU5'
2323
2424 let guarantors = ([valueOrElse(getBinary(this, "guarantor1"), base58''), valueOrElse(getBinary(this, "guarantor2"), base58''), valueOrElse(getBinary(this, "guarantor3"), base58'')] :+ base58'')
2525
2626 let actualSize = value(indexOf(guarantors, base58''))
2727
2828 let minSignatures = ((actualSize / 2) + (actualSize % 2))
2929
3030 let usdtAsset = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
3131
3232 let usdcAsset = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
3333
3434 let fhfsAsset = base58'4wcCKU3Cu4ABpmfiwzufocvrQQuRX4QMHZ7TjpRwtAmn'
3535
3636 let ratsAsset = base58'Z7817F7hnbWYsVHykjPtn8sUjyuLLf8NPofdveb8CMD'
3737
3838 let xfeeAsset = base58'5EMfVQiB8NF4HuhaXrZzDM637whWuVBsduq59ZaCSNqk'
3939
4040 let portfolio = [base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ', base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS', base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu', base58'zMFqXuoyrn5w17PFurTqxB7GsS71fp9dfk6XFwxbPCy', base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk', base58'B3uGHFRpSUuGEDWjqB9LWWxafQj8VTvpMucEyoxzws5H', base58'5WvPKSJXzVE2orvbkJ8wsQmmQKqTv9sGBPksV4adViw3', base58'BrjUWjndUanm5VsJkbUip8VRYy6LWJePtxya3FNv4TQa']
4141
4242 let ourAssets = [fhfsAsset, xfeeAsset, ratsAsset]
4343
4444 let majorSize = 1
4545
4646 let majorMult = 2
4747
4848 let altMult = (majorMult * (size(portfolio) - majorSize))
4949
5050 let admin = Address(base58'3PLRw83NCgHKKFfeJi8XWZ4fypqJJxm2x2x')
5151
5252 let fmain = Address(base58'3PEPsNg7aSWSSgdC6XweyJkvDXmwVoWeNHL')
5353
5454 let fcold = Address(base58'3P8v4dR4UD8nGeLQmorw6BmCo424GvGBXCA')
5555
5656 let frats = Address(base58'3PJ7RB5CC3Bnn44RNR2hceZ6wKsULnMSxPi')
5757
5858 let fhfsTotal = (assetBalance(fmain, fhfsAsset) + assetBalance(fcold, fhfsAsset))
5959
6060 let fhfsFunds = (value(assetInfo(fhfsAsset)).quantity - fhfsTotal)
6161
6262 let ratsTotal = (assetBalance(frats, ratsAsset) + assetBalance(fcold, ratsAsset))
6363
6464 let ratsFunds = (value(assetInfo(ratsAsset)).quantity - ratsTotal)
6565
6666 let usdxFunds = (assetBalance(frats, usdtAsset) + assetBalance(frats, usdcAsset))
6767
6868 func round (xVal) = ((xVal + 1) / 2)
6969
7070
7171 func fractionRound (val,num,den) = round(fraction((2 * val), num, den))
7272
7373
7474 func valueOrMinimum (val,minVal) = if ((minVal > val))
7575 then minVal
7676 else val
7777
7878
79-func adminTimestamp (publicKey) = if ((publicKey != adminPublicKey))
80- then nil
81- else [IntegerEntry("timestamp", lastBlock.timestamp)]
82-
83-
84-func excessAmount (assetId) = {
85- let fmainFunds = assetBalance(fmain, assetId)
86- let totalFunds = (fmainFunds + assetBalance(fcold, assetId))
87- valueOrMinimum((fraction(totalFunds, mainPercent, percent) - fmainFunds), 0)
88- }
89-
90-
91-func airdropBalance (assetId) = if (containsElement((portfolio ++ ourAssets), assetId))
92- then throw(makeString(["AirdropWasher () =>", "Please remove the asset ID:", toBase58String(assetId)], " "))
93- else if ((assetId == base58''))
94- then 0
95- else assetBalance(this, assetId)
96-
97-
9879 func toDateTimeString (timestamp) = {
9980 let sp = toBytes(" ")
10081 let zd = toBytes(" UTC")
10182 let norm = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]
10283 let leap = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
10384 let epoch = (((((1969 * 365) + (1969 / 4)) - (1969 / 100)) + (1969 / 400)) + 366)
10485 let ce = (timestamp + ((epoch * 86400) * 1000))
10586 if (((-12212553600 * 1000) > timestamp))
10687 then throw("ISO 8601: Only years after 1583 inclusive are allowed!")
10788 else {
10889 let date = {
10990 let yyyy = ((ce / (31556952 * 1000)) - 1)
11091 let ytd = ((ce / (86400 * 1000)) - (((((yyyy * 365) + (yyyy / 4)) - (yyyy / 100)) + (yyyy / 400)) + 366))
11192 let months = if (if (if ((((yyyy + 1) % 4) == 0))
11293 then (((yyyy + 1) % 100) != 0)
11394 else false)
11495 then true
11596 else (((yyyy + 1) % 400) == 0))
11697 then leap
11798 else norm
11899 let mm = if (if ((0 > ytd))
119100 then true
120101 else (ytd >= months[12]))
121102 then throw("Unexpected error: Value overflow for months!")
122103 else if ((ytd >= months[11]))
123104 then 11
124105 else if ((ytd >= months[10]))
125106 then 10
126107 else if ((ytd >= months[9]))
127108 then 9
128109 else if ((ytd >= months[8]))
129110 then 8
130111 else if ((ytd >= months[7]))
131112 then 7
132113 else if ((ytd >= months[6]))
133114 then 6
134115 else if ((ytd >= months[5]))
135116 then 5
136117 else if ((ytd >= months[4]))
137118 then 4
138119 else if ((ytd >= months[3]))
139120 then 3
140121 else if ((ytd >= months[2]))
141122 then 2
142123 else if ((ytd >= months[1]))
143124 then 1
144125 else 0
145126 let dd = (ytd - months[mm])
146127 ((((drop(toBytes(toString((yyyy + 1))), 0) + base58'n') + drop(toBytes(toString((mm + 101))), 1)) + base58'n') + drop(toBytes(toString((dd + 101))), 1))
147128 }
148129 let time = {
149130 let rd = (ce % (86400 * 1000))
150131 let hh = (rd / (3600 * 1000))
151132 let rh = (rd % (3600 * 1000))
152133 let mm = (rh / (60 * 1000))
153134 let rm = (rh % (60 * 1000))
154135 let ss = (rm / 1000)
155136 let ms = (rm % 1000)
156137 ((((drop(toBytes(toString((hh + 100))), 1) + base58'21') + drop(toBytes(toString((mm + 100))), 1)) + base58'21') + drop(toBytes(toString((ss + 100))), 1))
157138 }
158139 toUtf8String((((date + sp) + time) + zd))
159140 }
160141 }
142+
143+
144+func adminTimestamp (publicKey) = if ((publicKey != adminPublicKey))
145+ then nil
146+ else [IntegerEntry("timestamp", lastBlock.timestamp)]
147+
148+
149+func excessAmount (assetId) = {
150+ let fmainFunds = assetBalance(fmain, assetId)
151+ let totalFunds = (fmainFunds + assetBalance(fcold, assetId))
152+ valueOrMinimum((fraction(totalFunds, mainPercent, percent) - fmainFunds), 0)
153+ }
154+
155+
156+func airdropBalance (assetId) = if (containsElement((portfolio ++ ourAssets), assetId))
157+ then throw(makeString(["AirdropWasher () =>", "Please remove the asset ID:", toBase58String(assetId)], " "))
158+ else if ((assetId == base58''))
159+ then 0
160+ else assetBalance(this, assetId)
161161
162162
163163 @Callable(i)
164164 func AutoFixProfit (newMult) = {
165165 let oldProfit = valueOrElse(getInteger(this, "fixedProfit"), 0)
166166 let riskPercent = valueOrElse(getInteger(this, "riskPercent"), (percent / 100))
167167 let usdtFunds = fraction(fhfsFunds, fhfsPrice, decMult)
168168 let riskAmount = fraction(usdtFunds, riskPercent, (altMult * percent))
169169 let minMult = ((oldProfit / riskAmount) + 1)
170170 let newProfit = (newMult * riskAmount)
171171 let usdtAmount = valueOrMinimum((newProfit - oldProfit), 0)
172172 let ratsAmount = fractionRound(usdtAmount, ratsFunds, usdxFunds)
173173 if ((minMult > newMult))
174174 then throw(makeString([(("AutoFixProfit (" + toString(newMult)) + ") =>"), "Inavlid value! Min. multiplier:", toString(minMult)], " "))
175175 else if ((size(i.payments) > 0))
176176 then throw(makeString(["AutoFixProfit (...) =>", "Don't attach payment when calling this function ..."], " "))
177177 else if (if ((i.callerPublicKey != adminPublicKey))
178178 then (i.callerPublicKey != robotPublicKey)
179179 else false)
180180 then throw(makeString(["AutoFixProfit (...) =>", "This action can only be performed by an administrator!"], " "))
181181 else ([IntegerEntry("fixedProfit", newProfit), ScriptTransfer(frats, usdtAmount, usdtAsset), ScriptTransfer(fmain, ratsAmount, ratsAsset)] ++ adminTimestamp(i.callerPublicKey))
182182 }
183183
184184
185185
186186 @Callable(i)
187187 func AutoRebalance () = {
188188 let fhfsSupply = valueOrElse(getInteger(fmain, "fhfsSupply"), (100 * decMult))
189189 let fhfsExcessAmount = valueOrMinimum((fhfsSupply - assetBalance(fmain, fhfsAsset)), 0)
190190 if ((size(i.payments) > 0))
191191 then throw(makeString(["AutoRebalance () =>", "Don't attach payment when calling this function ..."], " "))
192192 else if (if ((i.callerPublicKey != adminPublicKey))
193193 then (i.callerPublicKey != robotPublicKey)
194194 else false)
195195 then throw(makeString(["AutoRebalance () =>", "This action can only be performed by an administrator!"], " "))
196196 else ([ScriptTransfer(fmain, fhfsExcessAmount, fhfsAsset), ScriptTransfer(fmain, excessAmount(portfolio[0]), portfolio[0]), ScriptTransfer(fmain, excessAmount(portfolio[1]), portfolio[1]), ScriptTransfer(fmain, excessAmount(portfolio[2]), portfolio[2]), ScriptTransfer(fmain, excessAmount(portfolio[3]), portfolio[3]), ScriptTransfer(fmain, excessAmount(portfolio[4]), portfolio[4]), ScriptTransfer(fmain, excessAmount(portfolio[5]), portfolio[5]), ScriptTransfer(fmain, excessAmount(portfolio[6]), portfolio[6]), ScriptTransfer(fmain, excessAmount(portfolio[7]), portfolio[7])] ++ adminTimestamp(i.callerPublicKey))
197197 }
198198
199199
200200
201201 @Callable(i)
202202 func AirdropWasher (id0,id1,id2,id3,id4,id5,id6,id7,id8,id9) = if ((size(i.payments) > 0))
203203 then throw(makeString(["AirdropWasher (...) =>", "Don't attach payment when calling this function ..."], " "))
204204 else if ((i.callerPublicKey != adminPublicKey))
205205 then throw(makeString(["AirdropWasher (...) =>", "This action can only be performed by an administrator!"], " "))
206206 else ([ScriptTransfer(admin, airdropBalance(id0), id0), ScriptTransfer(admin, airdropBalance(id1), id1), ScriptTransfer(admin, airdropBalance(id2), id2), ScriptTransfer(admin, airdropBalance(id3), id3), ScriptTransfer(admin, airdropBalance(id4), id4), ScriptTransfer(admin, airdropBalance(id5), id5), ScriptTransfer(admin, airdropBalance(id6), id6), ScriptTransfer(admin, airdropBalance(id7), id7), ScriptTransfer(admin, airdropBalance(id8), id8), ScriptTransfer(admin, airdropBalance(id9), id9)] ++ adminTimestamp(i.callerPublicKey))
207207
208208
209209
210210 @Callable(i)
211211 func EmergencyExit () = {
212212 let minTimestamp = (max([valueOrElse(getInteger(fmain, "timestamp"), 0), valueOrElse(getInteger(fcold, "timestamp"), 0), valueOrElse(getInteger(frats, "timestamp"), 0)]) + oneWeek)
213213 let isAdmin = (i.callerPublicKey == adminPublicKey)
214214 let isEmergency = valueOrElse(getBoolean(this, "emergency"), false)
215215 if (if (!(isAdmin))
216216 then isEmergency
217217 else false)
218218 then throw(makeString(["EmergencyExit () =>", "The emergency procedure has already started!"], " "))
219219 else if (if (!(isEmergency))
220220 then (minTimestamp > lastBlock.timestamp)
221221 else false)
222222 then throw(makeString(["EmergencyExit () =>", "Will be allowed after the date:", toDateTimeString(minTimestamp)], " "))
223223 else if ((size(i.payments) > 0))
224224 then throw(makeString(["EmergencyExit () =>", "Don't attach payment when calling this function ..."], " "))
225225 else if (if (!(isAdmin))
226226 then !(containsElement(guarantors, i.callerPublicKey))
227227 else false)
228228 then throw(makeString(["EmergencyExit () =>", "This action can only be performed by one of the guarantors!"], " "))
229229 else (((if (isAdmin)
230230 then nil
231231 else [ScriptTransfer(fmain, assetBalance(fcold, portfolio[0]), portfolio[0]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[1]), portfolio[1]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[2]), portfolio[2]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[3]), portfolio[3]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[4]), portfolio[4]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[5]), portfolio[5]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[6]), portfolio[6]), ScriptTransfer(fmain, assetBalance(fcold, portfolio[7]), portfolio[7])]) :+ BooleanEntry("emergency", !(isAdmin))) ++ adminTimestamp(i.callerPublicKey))
232232 }
233233
234234
235235 @Verifier(tx)
236236 func verify () = {
237237 let isValidOwner = sigVerify_32Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
238238 let isValidAdmin = if (isValidOwner)
239239 then true
240240 else sigVerify_32Kb(tx.bodyBytes, tx.proofs[0], adminPublicKey)
241241 let isValidRobot = if (isValidOwner)
242242 then true
243243 else sigVerify_32Kb(tx.bodyBytes, tx.proofs[0], robotPublicKey)
244244 let isValidGuarantors = ((((if (sigVerify_32Kb(tx.bodyBytes, tx.proofs[1], guarantors[0]))
245245 then 1
246246 else 0) + (if (sigVerify_32Kb(tx.bodyBytes, tx.proofs[2], guarantors[1]))
247247 then 1
248248 else 0)) + (if (sigVerify_32Kb(tx.bodyBytes, tx.proofs[3], guarantors[2]))
249249 then 1
250250 else 0)) >= minSignatures)
251251 match tx {
252252 case _: LeaseCancelTransaction|LeaseTransaction =>
253253 isValidOwner
254254 case b: BurnTransaction =>
255255 if (if (isValidOwner)
256256 then !(containsElement(portfolio, b.assetId))
257257 else false)
258258 then !(containsElement(ourAssets, b.assetId))
259259 else false
260260 case o: Order =>
261261 if (if (if (if (if (isValidRobot)
262262 then !(isDefined(o.matcherFeeAssetId))
263263 else false)
264264 then (o.matcherPublicKey == wexchPublicKey)
265265 else false)
266266 then if (if (if ((o.orderType == Buy))
267267 then !(containsElement(portfolio, o.assetPair.priceAsset))
268268 else false)
269269 then true
270270 else if ((o.orderType == Sell))
271271 then !(containsElement(portfolio, o.assetPair.amountAsset))
272272 else false)
273273 then true
274274 else if (!(containsElement(portfolio, o.assetPair.priceAsset)))
275275 then !(containsElement(portfolio, o.assetPair.amountAsset))
276276 else false
277277 else false)
278278 then !(containsElement(ourAssets, o.assetPair.priceAsset))
279279 else false)
280280 then !(containsElement(ourAssets, o.assetPair.amountAsset))
281281 else false
282282 case t: MassTransferTransaction|TransferTransaction =>
283283 if (if (if (isValidAdmin)
284284 then isValidGuarantors
285285 else false)
286286 then !(containsElement(portfolio, t.assetId))
287287 else false)
288288 then !(containsElement(portfolio, t.feeAssetId))
289289 else false
290290 case _: SetScriptTransaction|DataTransaction =>
291291 if (isValidAdmin)
292292 then isValidGuarantors
293293 else false
294294 case _ =>
295295 false
296296 }
297297 }
298298

github/deemru/w8io/3ef1775 
59.57 ms