tx · 2FEnpGg1AX1GwU2x4yi2ZdLYiQkDb7KGRzyJZD53bR9L

3PBeerh759eA1eGFuw77RowaZfZNohzJzvz:  -0.01400000 Waves

2022.12.15 15:49 [3426897] smart account 3PBeerh759eA1eGFuw77RowaZfZNohzJzvz > SELF 0.00000000 Waves

{ "type": 13, "id": "2FEnpGg1AX1GwU2x4yi2ZdLYiQkDb7KGRzyJZD53bR9L", "fee": 1400000, "feeAssetId": null, "timestamp": 1671108559933, "version": 2, "chainId": 87, "sender": "3PBeerh759eA1eGFuw77RowaZfZNohzJzvz", "senderPublicKey": "Fw5NUe1f5xvDWNgCRm1CuYRnJGm2JqeSjqEBioaPvwaR", "proofs": [ "3bkQzLYfHFThmeLHHhZh6nssRzQVpq4kHsqypHFntG9CNjjXiGdkD4VqWqdCLNdZNC3pWtKduP893UM8bhSHfPg6" ], "script": "base64:AAIFAAAAAAAAACUIAhIJCgcIAQgICAgEEgkKBwgICAgICAESCwoJCAgICAgICAgBAAAABwAAAAAKcnVsZXJfdGVzdAIAAAAsQmd4cENtNHd4Ylc4U0tMUEtabmY0S1UyRDZaVTI5b3Y4TWdacmthU0FxcFkAAAAABXJ1bGVyAgAAACw3ek5VSkJWb1BNQkNSc3RQM1IxQXZ4aHhyTjUxU1FrbjVCTWkyaUo5Y2lBZAAAAAAGcnVsZXIyAgAAACw5ZmU2N2V3enh0YUxvemVQWjJVM1NHNzFaUUZ5R0xBWFdtbW1IUkVwRmVNQwAAAAAGcnVsZXIzAgAAACxGZU1YNmhRYVJLc0xza2k3N3hWSEhER1JrajlWdUp6bVAyTUFDYkFXRGpESwEAAAAOZ2V0QXNzZXRTdHJpbmcAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAWIFAAAAByRtYXRjaDAJAAJYAAAAAQUAAAABYgIAAAAFV0FWRVMBAAAADWdldEFzc2V0Qnl0ZXMAAAABAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAAB2Fzc2V0SWQBAAAACW15QmFsYW5jZQAAAAEAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYgUAAAAHJG1hdGNoMAkAA/AAAAACBQAAAAR0aGlzBQAAAAFiCAkAA+8AAAABBQAAAAR0aGlzAAAACWF2YWlsYWJsZQAAAAMAAAABaQEAAAAEZmFrZQAAAAcAAAAEYV9pbgAAAAZhbW91bnQAAAAFYV9vdXQAAAACcG8AAAAFcG9fdHkAAAAOd3hfbHBfYXNzZXRfaWQAAAAJaXNfc3RhYmxlBAAAAAdhc3NldEluCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAABGFfaW4EAAAACGFtb3VudEluBQAAAAZhbW91bnQEAAAAAmxiAAAAAAAAAAAABAAAAAVwdXRPcAMFAAAACWlzX3N0YWJsZQIAAAALcHV0T25lVGtuVjICAAAACXB1dE9uZVRrbgQAAAAFZ2V0T3ADBQAAAAlpc19zdGFibGUCAAAAC2dldE9uZVRrblYyAgAAAAlwdXRPbmVUa24EAAAAFGFtb3VudF9iZWZfYXNzZXRfb3V0CQEAAAAJbXlCYWxhbmNlAAAAAQkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAVhX291dAMJAAAAAAAAAgUAAAAUYW1vdW50X2JlZl9hc3NldF9vdXQFAAAAFGFtb3VudF9iZWZfYXNzZXRfb3V0BAAAAAZlbnRyeTEDCQAAAAAAAAIFAAAABXBvX3R5AgAAAAFwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwbwIAAAAEc3dhcAkABEwAAAACBQAAAAVhX291dAkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAB2Fzc2V0SW4FAAAACGFtb3VudEluBQAAAANuaWwDCQAAAAAAAAIFAAAABXBvX3R5AgAAAAFzCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwbwIAAAAIZXhjaGFuZ2UJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAdhc3NldEluBQAAAAhhbW91bnRJbgUAAAADbmlsBAAAAANwdXQJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAAnBvBQAAAAVwdXRPcAkABEwAAAACAAAAAAAAAAABCQAETAAAAAIHBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAB2Fzc2V0SW4FAAAACGFtb3VudEluBQAAAANuaWwDCQAAAAAAAAIFAAAAA3B1dAUAAAADcHV0BAAAAAt3eF9scF9hc3NldAkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAA53eF9scF9hc3NldF9pZAQAAAAJbHBCYWxhbmNlCQEAAAAJbXlCYWxhbmNlAAAAAQUAAAALd3hfbHBfYXNzZXQDCQAAAAAAAAIFAAAACWxwQmFsYW5jZQUAAAAJbHBCYWxhbmNlCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwbwUAAAAFZ2V0T3AJAARMAAAAAgUAAAAFYV9vdXQJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAt3eF9scF9hc3NldAUAAAAJbHBCYWxhbmNlBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAAAAAAAAgUAAAAGZW50cnkxBQAAAAZlbnRyeTEEAAAAFmFtb3VudF9hZnRlcl9hc3NldF9vdXQJAQAAAAlteUJhbGFuY2UAAAABCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAABWFfb3V0AwkAAAAAAAACBQAAABZhbW91bnRfYWZ0ZXJfYXNzZXRfb3V0BQAAABZhbW91bnRfYWZ0ZXJfYXNzZXRfb3V0BAAAAARyZXN1CQAAZQAAAAIFAAAAFmFtb3VudF9hZnRlcl9hc3NldF9vdXQFAAAAFGFtb3VudF9iZWZfYXNzZXRfb3V0CQAAAgAAAAEJAAGkAAAAAQUAAAAEcmVzdQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAV0cmFkZQAAAAcAAAABYQAAAAJhbwAAAAJwMQAAAANwMXQAAAACcDIAAAADcDJ0AAAAA21pbgQAAAAJY2FsbGVyUGJrCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQMDAwkBAAAAAiE9AAAAAgUAAAAJY2FsbGVyUGJrBQAAAAVydWxlcgkBAAAAAiE9AAAAAgUAAAAJY2FsbGVyUGJrBQAAAAZydWxlcjIHCQEAAAACIT0AAAACBQAAAAljYWxsZXJQYmsFAAAABnJ1bGVyMwcJAAACAAAAAQIAAAAITm8tbm8tbm8EAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJbgkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAhhbW91bnRJbgkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAEWFtb3VudF9iZWZfYXNzZXQxCQEAAAAJbXlCYWxhbmNlAAAAAQkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAFhAwkAAAAAAAACBQAAABFhbW91bnRfYmVmX2Fzc2V0MQUAAAARYW1vdW50X2JlZl9hc3NldDEEAAAABmVudHJ5MQMJAAAAAAAAAgUAAAADcDF0AgAAAAFwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwMQIAAAAEc3dhcAkABEwAAAACBQAAAAFhCQAETAAAAAIAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAHYXNzZXRJbgUAAAAIYW1vdW50SW4FAAAAA25pbAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAACcDECAAAACGV4Y2hhbmdlCQAETAAAAAIAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAHYXNzZXRJbgUAAAAIYW1vdW50SW4FAAAAA25pbAMJAAAAAAAAAgUAAAAGZW50cnkxBQAAAAZlbnRyeTEEAAAAAm5iCQAAZQAAAAIJAQAAAAlteUJhbGFuY2UAAAABCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAAWEFAAAAEWFtb3VudF9iZWZfYXNzZXQxAwkAAAAAAAACBQAAAAJuYgUAAAACbmIEAAAAFWFtb3VudF9iZWZfYmFzZV9hc3NldAkBAAAACW15QmFsYW5jZQAAAAEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAACYW8DCQAAAAAAAAIFAAAAFWFtb3VudF9iZWZfYmFzZV9hc3NldAUAAAAVYW1vdW50X2JlZl9iYXNlX2Fzc2V0BAAAAAZlbnRyeTIDCQAAAAAAAAIFAAAAA3AydAIAAAABcAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAACcDICAAAABHN3YXAJAARMAAAAAgUAAAACYW8JAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAAWEFAAAAAm5iBQAAAANuaWwJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAAnAyAgAAAAhleGNoYW5nZQkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAABYQUAAAACbmIFAAAAA25pbAMJAAAAAAAAAgUAAAAGZW50cnkyBQAAAAZlbnRyeTIEAAAAA25iMgkAAGUAAAACCQEAAAAJbXlCYWxhbmNlAAAAAQkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAJhbwUAAAAVYW1vdW50X2JlZl9iYXNlX2Fzc2V0AwkAAAAAAAACBQAAAANuYjIFAAAAA25iMgMJAABmAAAAAgUAAAADbmIyBQAAAANtaW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAANuYjIJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAACYW8FAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAC09vb3BzLCBpbjogCQABpAAAAAEFAAAACGFtb3VudEluAgAAAAMxOiAJAAGkAAAAAQUAAAACbmICAAAABywgb3V0OiAJAAGkAAAAAQUAAAADbmIyAgAAAAcsIG1pbjogCQABpAAAAAEFAAAAA21pbgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAl0cmlwdHJhZGUAAAAJAAAAAWEAAAACYTIAAAACcDEAAAADcDF0AAAAAnAyAAAAA3AydAAAAAJwMwAAAANwM3QAAAADbWluBAAAAAljYWxsZXJQYmsJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5AwMDCQEAAAACIT0AAAACBQAAAAljYWxsZXJQYmsFAAAABXJ1bGVyCQEAAAACIT0AAAACBQAAAAljYWxsZXJQYmsFAAAABnJ1bGVyMgcJAQAAAAIhPQAAAAIFAAAACWNhbGxlclBiawUAAAAGcnVsZXIzBwkAAAIAAAABAgAAAAhOby1uby1ubwQAAAADcG10CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAdhc3NldEluCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAACGFtb3VudEluCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAABmFtb3VudAQAAAARYW1vdW50X2JlZl9hc3NldDEJAQAAAAlteUJhbGFuY2UAAAABCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAAWEDCQAAAAAAAAIFAAAAEWFtb3VudF9iZWZfYXNzZXQxBQAAABFhbW91bnRfYmVmX2Fzc2V0MQQAAAAGZW50cnkxAwkAAAAAAAACBQAAAANwMXQCAAAAAXAJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAAAnAxAgAAAARzd2FwCQAETAAAAAIFAAAAAWEJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAdhc3NldEluBQAAAAhhbW91bnRJbgUAAAADbmlsCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwMQIAAAAIZXhjaGFuZ2UJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAdhc3NldEluBQAAAAhhbW91bnRJbgUAAAADbmlsAwkAAAAAAAACBQAAAAZlbnRyeTEFAAAABmVudHJ5MQQAAAACbmIJAABlAAAAAgkBAAAACW15QmFsYW5jZQAAAAEJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAABYQUAAAARYW1vdW50X2JlZl9hc3NldDEDCQAAAAAAAAIFAAAAAm5iBQAAAAJuYgQAAAARYW1vdW50X2JlZl9hc3NldDIJAQAAAAlteUJhbGFuY2UAAAABCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAAmEyAwkAAAAAAAACBQAAABFhbW91bnRfYmVmX2Fzc2V0MgUAAAARYW1vdW50X2JlZl9hc3NldDIEAAAABmVudHJ5MgMJAAAAAAAAAgUAAAADcDJ0AgAAAAFwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwMgIAAAAEc3dhcAkABEwAAAACBQAAAAJhMgkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAABYQUAAAACbmIFAAAAA25pbAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAACcDICAAAACGV4Y2hhbmdlCQAETAAAAAIAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAFhBQAAAAJuYgUAAAADbmlsAwkAAAAAAAACBQAAAAZlbnRyeTIFAAAABmVudHJ5MgQAAAAVYW1vdW50X2JlZl9iYXNlX2Fzc2V0CQEAAAAJbXlCYWxhbmNlAAAAAQUAAAAHYXNzZXRJbgMJAAAAAAAAAgUAAAAVYW1vdW50X2JlZl9iYXNlX2Fzc2V0BQAAABVhbW91bnRfYmVmX2Jhc2VfYXNzZXQEAAAAA25iMgkAAGUAAAACCQEAAAAJbXlCYWxhbmNlAAAAAQkBAAAADWdldEFzc2V0Qnl0ZXMAAAABBQAAAAJhMgUAAAARYW1vdW50X2JlZl9hc3NldDIDCQAAAAAAAAIFAAAAA25iMgUAAAADbmIyBAAAAAZlbnRyeTMDCQAAAAAAAAIFAAAAA3AzdAIAAAABcAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAACcDMCAAAABHN3YXAJAARMAAAAAgkBAAAADmdldEFzc2V0U3RyaW5nAAAAAQUAAAAHYXNzZXRJbgkABEwAAAACAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIJAQAAAA1nZXRBc3NldEJ5dGVzAAAAAQUAAAACYTIFAAAAA25iMgUAAAADbmlsCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAJwMwIAAAAIZXhjaGFuZ2UJAARMAAAAAgAAAAAAAAAAAQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCQEAAAANZ2V0QXNzZXRCeXRlcwAAAAEFAAAAAmEyBQAAAANuYjIFAAAAA25pbAMJAAAAAAAAAgUAAAAGZW50cnkzBQAAAAZlbnRyeTMEAAAAA25iMwkAAGUAAAACCQEAAAAJbXlCYWxhbmNlAAAAAQUAAAAHYXNzZXRJbgUAAAAVYW1vdW50X2JlZl9iYXNlX2Fzc2V0AwkAAAAAAAACBQAAAANuYjMFAAAAA25iMwMJAABmAAAAAgUAAAADbmIzBQAAAANtaW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAANuYjMFAAAAB2Fzc2V0SW4FAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtPb29wcywgaW46IAkAAaQAAAABBQAAAAhhbW91bnRJbgIAAAAFLCAxOiAJAAGkAAAAAQUAAAACbmICAAAABSwgMjogCQABpAAAAAEFAAAAA25iMgIAAAAHLCBvdXQ6IAkAAaQAAAABBQAAAANuYjMCAAAABywgbWluOiAJAAGkAAAAAQUAAAADbWluCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmchVvT", "height": 3426897, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ES57kR6Veczri8MwDQbuwFLPKvJket2dEhLBX9g9irmn Next: 62RjhgRcvvTGrgW9rScNGa61wgh5n16FRPq9Nx98JHyA Diff:
OldNewDifferences
3131
3232
3333 @Callable(i)
34-func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id) = {
34+func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = {
3535 let assetIn = getAssetBytes(a_in)
3636 let amountIn = amount
3737 let lb = 0
38+ let putOp = if (is_stable)
39+ then "putOneTknV2"
40+ else "putOneTkn"
41+ let getOp = if (is_stable)
42+ then "getOneTknV2"
43+ else "putOneTkn"
3844 let amount_bef_asset_out = myBalance(getAssetBytes(a_out))
3945 if ((amount_bef_asset_out == amount_bef_asset_out))
4046 then {
4349 else if ((po_ty == "s"))
4450 then invoke(Address(fromBase58String(po)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
4551 else {
46- let put = invoke(Address(fromBase58String(po)), "putOneTkn", [1, false], [AttachedPayment(assetIn, amountIn)])
52+ let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)])
4753 if ((put == put))
4854 then {
4955 let wx_lp_asset = getAssetBytes(wx_lp_asset_id)
5056 let lpBalance = myBalance(wx_lp_asset)
5157 if ((lpBalance == lpBalance))
52- then invoke(Address(fromBase58String(po)), "getOneTkn", [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)])
58+ then invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)])
5359 else throw("Strict value is not equal to itself.")
5460 }
5561 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ruler_test = "BgxpCm4wxbW8SKLPKZnf4KU2D6ZU29ov8MgZrkaSAqpY"
55
66 let ruler = "7zNUJBVoPMBCRstP3R1AvxhxrN51SQkn5BMi2iJ9ciAd"
77
88 let ruler2 = "9fe67ewzxtaLozePZ2U3SG71ZQFyGLAXWmmmHREpFeMC"
99
1010 let ruler3 = "FeMX6hQaRKsLski77xVHHDGRkj9VuJzmP2MACbAWDjDK"
1111
1212 func getAssetString (assetId) = match assetId {
1313 case b: ByteVector =>
1414 toBase58String(b)
1515 case _ =>
1616 "WAVES"
1717 }
1818
1919
2020 func getAssetBytes (assetId) = if ((assetId == "WAVES"))
2121 then unit
2222 else fromBase58String(assetId)
2323
2424
2525 func myBalance (assetId) = match assetId {
2626 case b: ByteVector =>
2727 assetBalance(this, b)
2828 case _ =>
2929 wavesBalance(this).available
3030 }
3131
3232
3333 @Callable(i)
34-func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id) = {
34+func fake (a_in,amount,a_out,po,po_ty,wx_lp_asset_id,is_stable) = {
3535 let assetIn = getAssetBytes(a_in)
3636 let amountIn = amount
3737 let lb = 0
38+ let putOp = if (is_stable)
39+ then "putOneTknV2"
40+ else "putOneTkn"
41+ let getOp = if (is_stable)
42+ then "getOneTknV2"
43+ else "putOneTkn"
3844 let amount_bef_asset_out = myBalance(getAssetBytes(a_out))
3945 if ((amount_bef_asset_out == amount_bef_asset_out))
4046 then {
4147 let entry1 = if ((po_ty == "p"))
4248 then invoke(Address(fromBase58String(po)), "swap", [a_out, 1], [AttachedPayment(assetIn, amountIn)])
4349 else if ((po_ty == "s"))
4450 then invoke(Address(fromBase58String(po)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
4551 else {
46- let put = invoke(Address(fromBase58String(po)), "putOneTkn", [1, false], [AttachedPayment(assetIn, amountIn)])
52+ let put = invoke(Address(fromBase58String(po)), putOp, [1, false], [AttachedPayment(assetIn, amountIn)])
4753 if ((put == put))
4854 then {
4955 let wx_lp_asset = getAssetBytes(wx_lp_asset_id)
5056 let lpBalance = myBalance(wx_lp_asset)
5157 if ((lpBalance == lpBalance))
52- then invoke(Address(fromBase58String(po)), "getOneTkn", [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)])
58+ then invoke(Address(fromBase58String(po)), getOp, [a_out, 1], [AttachedPayment(wx_lp_asset, lpBalance)])
5359 else throw("Strict value is not equal to itself.")
5460 }
5561 else throw("Strict value is not equal to itself.")
5662 }
5763 if ((entry1 == entry1))
5864 then {
5965 let amount_after_asset_out = myBalance(getAssetBytes(a_out))
6066 if ((amount_after_asset_out == amount_after_asset_out))
6167 then {
6268 let resu = (amount_after_asset_out - amount_bef_asset_out)
6369 throw(toString(resu))
6470 }
6571 else throw("Strict value is not equal to itself.")
6672 }
6773 else throw("Strict value is not equal to itself.")
6874 }
6975 else throw("Strict value is not equal to itself.")
7076 }
7177
7278
7379
7480 @Callable(i)
7581 func trade (a,ao,p1,p1t,p2,p2t,min) = {
7682 let callerPbk = toBase58String(i.callerPublicKey)
7783 if (if (if ((callerPbk != ruler))
7884 then (callerPbk != ruler2)
7985 else false)
8086 then (callerPbk != ruler3)
8187 else false)
8288 then throw("No-no-no")
8389 else {
8490 let pmt = i.payments[0]
8591 let assetIn = value(pmt.assetId)
8692 let amountIn = value(pmt.amount)
8793 let amount_bef_asset1 = myBalance(getAssetBytes(a))
8894 if ((amount_bef_asset1 == amount_bef_asset1))
8995 then {
9096 let entry1 = if ((p1t == "p"))
9197 then invoke(Address(fromBase58String(p1)), "swap", [a, 1], [AttachedPayment(assetIn, amountIn)])
9298 else invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
9399 if ((entry1 == entry1))
94100 then {
95101 let nb = (myBalance(getAssetBytes(a)) - amount_bef_asset1)
96102 if ((nb == nb))
97103 then {
98104 let amount_bef_base_asset = myBalance(getAssetBytes(ao))
99105 if ((amount_bef_base_asset == amount_bef_base_asset))
100106 then {
101107 let entry2 = if ((p2t == "p"))
102108 then invoke(Address(fromBase58String(p2)), "swap", [ao, 1], [AttachedPayment(getAssetBytes(a), nb)])
103109 else invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a), nb)])
104110 if ((entry2 == entry2))
105111 then {
106112 let nb2 = (myBalance(getAssetBytes(ao)) - amount_bef_base_asset)
107113 if ((nb2 == nb2))
108114 then if ((nb2 > min))
109115 then [ScriptTransfer(i.caller, nb2, getAssetBytes(ao))]
110116 else throw(((((((("Ooops, in: " + toString(amountIn)) + "1: ") + toString(nb)) + ", out: ") + toString(nb2)) + ", min: ") + toString(min)))
111117 else throw("Strict value is not equal to itself.")
112118 }
113119 else throw("Strict value is not equal to itself.")
114120 }
115121 else throw("Strict value is not equal to itself.")
116122 }
117123 else throw("Strict value is not equal to itself.")
118124 }
119125 else throw("Strict value is not equal to itself.")
120126 }
121127 else throw("Strict value is not equal to itself.")
122128 }
123129 }
124130
125131
126132
127133 @Callable(i)
128134 func triptrade (a,a2,p1,p1t,p2,p2t,p3,p3t,min) = {
129135 let callerPbk = toBase58String(i.callerPublicKey)
130136 if (if (if ((callerPbk != ruler))
131137 then (callerPbk != ruler2)
132138 else false)
133139 then (callerPbk != ruler3)
134140 else false)
135141 then throw("No-no-no")
136142 else {
137143 let pmt = i.payments[0]
138144 let assetIn = value(pmt.assetId)
139145 let amountIn = value(pmt.amount)
140146 let amount_bef_asset1 = myBalance(getAssetBytes(a))
141147 if ((amount_bef_asset1 == amount_bef_asset1))
142148 then {
143149 let entry1 = if ((p1t == "p"))
144150 then invoke(Address(fromBase58String(p1)), "swap", [a, 1], [AttachedPayment(assetIn, amountIn)])
145151 else invoke(Address(fromBase58String(p1)), "exchange", [1], [AttachedPayment(assetIn, amountIn)])
146152 if ((entry1 == entry1))
147153 then {
148154 let nb = (myBalance(getAssetBytes(a)) - amount_bef_asset1)
149155 if ((nb == nb))
150156 then {
151157 let amount_bef_asset2 = myBalance(getAssetBytes(a2))
152158 if ((amount_bef_asset2 == amount_bef_asset2))
153159 then {
154160 let entry2 = if ((p2t == "p"))
155161 then invoke(Address(fromBase58String(p2)), "swap", [a2, 1], [AttachedPayment(getAssetBytes(a), nb)])
156162 else invoke(Address(fromBase58String(p2)), "exchange", [1], [AttachedPayment(getAssetBytes(a), nb)])
157163 if ((entry2 == entry2))
158164 then {
159165 let amount_bef_base_asset = myBalance(assetIn)
160166 if ((amount_bef_base_asset == amount_bef_base_asset))
161167 then {
162168 let nb2 = (myBalance(getAssetBytes(a2)) - amount_bef_asset2)
163169 if ((nb2 == nb2))
164170 then {
165171 let entry3 = if ((p3t == "p"))
166172 then invoke(Address(fromBase58String(p3)), "swap", [getAssetString(assetIn), 1], [AttachedPayment(getAssetBytes(a2), nb2)])
167173 else invoke(Address(fromBase58String(p3)), "exchange", [1], [AttachedPayment(getAssetBytes(a2), nb2)])
168174 if ((entry3 == entry3))
169175 then {
170176 let nb3 = (myBalance(assetIn) - amount_bef_base_asset)
171177 if ((nb3 == nb3))
172178 then if ((nb3 > min))
173179 then [ScriptTransfer(i.caller, nb3, assetIn)]
174180 else throw(((((((((("Ooops, in: " + toString(amountIn)) + ", 1: ") + toString(nb)) + ", 2: ") + toString(nb2)) + ", out: ") + toString(nb3)) + ", min: ") + toString(min)))
175181 else throw("Strict value is not equal to itself.")
176182 }
177183 else throw("Strict value is not equal to itself.")
178184 }
179185 else throw("Strict value is not equal to itself.")
180186 }
181187 else throw("Strict value is not equal to itself.")
182188 }
183189 else throw("Strict value is not equal to itself.")
184190 }
185191 else throw("Strict value is not equal to itself.")
186192 }
187193 else throw("Strict value is not equal to itself.")
188194 }
189195 else throw("Strict value is not equal to itself.")
190196 }
191197 else throw("Strict value is not equal to itself.")
192198 }
193199 }
194200
195201
196202 @Verifier(tx)
197203 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
198204

github/deemru/w8io/873ac7e 
98.67 ms