tx · AktGFhFvhxV5AtGjZzpz9UY3u7JyYpfHLNQBa8HLGeGH

3PAv42skNMWedMSNx75fMDuMcFzggaELYqK:  -0.01200000 Waves

2023.04.09 08:15 [3592220] smart account 3PAv42skNMWedMSNx75fMDuMcFzggaELYqK > SELF 0.00000000 Waves

{ "type": 13, "id": "AktGFhFvhxV5AtGjZzpz9UY3u7JyYpfHLNQBa8HLGeGH", "fee": 1200000, "feeAssetId": null, "timestamp": 1681017339540, "version": 2, "chainId": 87, "sender": "3PAv42skNMWedMSNx75fMDuMcFzggaELYqK", "senderPublicKey": "2S8hdm8hsS8LEgawkBAPztpWr6tkd4qFjb3TPzqmm7D1", "proofs": [ "f225f3TxxbHV1UgEau4rUjPvseo5adSBieH7AocJPfx4hwXvctrj9RkaKNEEmD2YeTZRaMdV24miHJQkoohp94b" ], "script": "base64:AAIFAAAAAAAAABMIAhIAEgASAwoBARIAEgASABIAAAAAEgAAAAALZGV4Q29udHJhY3QBAAAAGgFXymv8n9fLujU9O2aaHo6wilKnNKKaQ5SCAAAAABBuZXV0cmlub0NvbnRyYWN0AQAAABoBV3AEYqZHm+mtVmiUy++FjDCCICiaCBSWsgAAAAAWbmV1dHJpbm9TdGFraW5nQWRkcmVzcwEAAAAaAVdraDjhA9SajJ8SG8YsvCMHOQvN7RLXCl8AAAAACnh0bkFzc2V0SWQBAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAAAAAtzdXJmQXNzZXRJZAEAAAAgktH0SuIRASv0fureIY49xfvJ8n3Oh7LtUhnwOk4kWPUAAAAACXd4QXNzZXRJZAEAAAAgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEAAAAAFGNhc2VYdG5Td2FwU3RhdGVJZGxlAAAAAAAAAAAAAAAAABxjYXNlWHRuU3dhcFN0YXRlWHRuVG9SZXdhcmRzAAAAAAAAAAABAAAAACRjYXNlWHRuU3dhcFN0YXRlRXhjaGFuZ2VSZXdhcmRzT25EZXgAAAAAAAAAAAIAAAAAE3h0blN3YXBTdGF0ZUVudW1LZXkCAAAAEHh0blN3YXBTdGF0ZUVudW0AAAAAEXh0blN3YXBCbG9ja0lkS2V5AgAAAA54dG5Td2FwQmxvY2tJZAAAAAAXeHRuU3dhcFRyYW5zYWN0aW9uSWRLZXkCAAAAFHh0blN3YXBUcmFuc2FjdGlvbklkAAAAABR4dG5Td2FwUHJpY2VJbmRleEtleQIAAAAReHRuU3dhcFByaWNlSW5kZXgAAAAAGnh0blN3YXBYdG5Td2FwcGVkQW1vdW50S2V5AgAAABd4dG5Td2FwWHRuU3dhcHBlZEFtb3VudAAAAAAceHRuU3dhcFdhdmVzQmFsYW5jZUF0U3dhcEtleQIAAAAZeHRuU3dhcFdhdmVzQmFsYW5jZUF0U3dhcAAAAAAZeHRuU3dhcFd4QmFsYW5jZUF0U3dhcEtleQIAAAAWeHRuU3dhcFd4QmFsYW5jZUF0U3dhcAAAAAAeeHRuU3dhcFh0bkJhbGFuY2VBdEV4Y2hhbmdlS2V5AgAAABt4dG5Td2FwWHRuQmFsYW5jZUF0RXhjaGFuZ2UAAAAAGXh0blN3YXBFeGNoYW5nZUJsb2NrSWRLZXkCAAAAFnh0blN3YXBFeGNoYW5nZUJsb2NrSWQAAAAHAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATeHRuU3dhcFN0YXRlRW51bUtleQUAAAAUY2FzZVh0blN3YXBTdGF0ZUlkbGUFAAAAA25pbAAAAAFpAQAAAB94dG5Td2FwUGFydDFzd2FwWFRORnJvbU5ldXRyaW5vAAAAAAMJAQAAAAIhPQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAE3h0blN3YXBTdGF0ZUVudW1LZXkFAAAAFGNhc2VYdG5Td2FwU3RhdGVJZGxlCQAAAgAAAAECAAAAGVdyb25nIHN0YXRlLCBtdXN0IGJlIElkbGUEAAAABnJlc3VsdAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QCAAAAG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0BAAAAAckbWF0Y2gwBQAAAAZyZXN1bHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAIyhJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50LCBJbnQpBAAAAAV0dXBsZQUAAAAHJG1hdGNoMAMJAABmAAAAAggFAAAABXR1cGxlAAAAAl8zAAAAAAAAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACdUaW1lIGlzIG5vdCBjb21lIHlldCwgeW91IG5lZWQgdG8gd2FpdCAJAAGkAAAAAQgFAAAABXR1cGxlAAAAAl8zAgAAAAcgYmxvY2tzBAAAAA1tYXhTd2FwQW1vdW50CAUAAAAFdHVwbGUAAAACXzcDCQAAZgAAAAIAAAAAAAAPQkAFAAAADW1heFN3YXBBbW91bnQJAAACAAAAAQIAAAAsTWluIFhUTiBhbW91bnQgdG8gc3dhcCBpcyAxLCBzdGFrZSBtb3JlIFNVUkYDCQAAZgAAAAIFAAAADW1heFN3YXBBbW91bnQJAAPwAAAAAgUAAAAEdGhpcwUAAAAKeHRuQXNzZXRJZAkAAAIAAAABAgAAAE5YVE4gQmFsYW5jZSBvbiBjb250cmFjdCBpcyBzbWFsbGVyIHRoYW4gbWF4IHN3YXAgYW1vdW50LCBpbmNyZWFzZSB5b3VyIGJhbGFuY2UEAAAAE2N1cnJlbnRXYXZlc0JhbGFuY2UJAAPvAAAAAQUAAAAEdGhpcwQAAAAQY3VycmVudFdYQmFsYW5jZQkAA/AAAAACBQAAAAR0aGlzBQAAAAl3eEFzc2V0SWQEAAAAFHN3YXBOZXV0cmlub1RvQXNzZXRzCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAAQbmV1dHJpbm9Db250cmFjdAIAAAAUc3dhcE5ldXRyaW5vVG9CYXNrZXQFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAKeHRuQXNzZXRJZAUAAAANbWF4U3dhcEFtb3VudAUAAAADbmlsAwkAAAAAAAACBQAAABRzd2FwTmV1dHJpbm9Ub0Fzc2V0cwUAAAAUc3dhcE5ldXRyaW5vVG9Bc3NldHMEAAAACnByaWNlSW5kZXgJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVyOzrRJck6TK7Dn+T0bWzVZNLfsQ+2OYegIAAAALcHJpY2VfaW5kZXgAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXh0blN3YXBCbG9ja0lkS2V5BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAXeHRuU3dhcFRyYW5zYWN0aW9uSWRLZXkJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUeHRuU3dhcFByaWNlSW5kZXhLZXkFAAAACnByaWNlSW5kZXgJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGnh0blN3YXBYdG5Td2FwcGVkQW1vdW50S2V5BQAAAA1tYXhTd2FwQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABx4dG5Td2FwV2F2ZXNCYWxhbmNlQXRTd2FwS2V5CAUAAAATY3VycmVudFdhdmVzQmFsYW5jZQAAAAlhdmFpbGFibGUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGXh0blN3YXBXeEJhbGFuY2VBdFN3YXBLZXkFAAAAEGN1cnJlbnRXWEJhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE3h0blN3YXBTdGF0ZUVudW1LZXkFAAAAHGNhc2VYdG5Td2FwU3RhdGVYdG5Ub1Jld2FyZHMFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAArSW5jb3JyZWN0IGRhdGEgZnJvbSBuZXV0cmlubyBzbWFydCBjb250cmFjdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAQc2V0TmV3UHJpY2VJbmRleAAAAAEAAAAFaW5kZXgJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFHh0blN3YXBQcmljZUluZGV4S2V5BQAAAAVpbmRleAUAAAADbmlsAAAAAWkBAAAAF2V4dGVuZFByaWNlSW5kZXhCeU9uZVVwAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUeHRuU3dhcFByaWNlSW5kZXhLZXkJAABkAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQUAAAAUeHRuU3dhcFByaWNlSW5kZXhLZXkAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAABlleHRlbmRQcmljZUluZGV4QnlPbmVEb3duAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAUeHRuU3dhcFByaWNlSW5kZXhLZXkJAABlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQUAAAAUeHRuU3dhcFByaWNlSW5kZXhLZXkAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAACd4dG5Td2FwUGFydDJleGNoYW5nZVh0blN3YXBSZXdhcmRzT25EZXgAAAAAAwkBAAAAAiE9AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQUAAAATeHRuU3dhcFN0YXRlRW51bUtleQUAAAAcY2FzZVh0blN3YXBTdGF0ZVh0blRvUmV3YXJkcwkAAAIAAAABAgAAACFXcm9uZyBzdGF0ZSwgbXVzdCBiZSBYdG5Ub1Jld2FyZHMDCQAAZwAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAEXh0blN3YXBCbG9ja0lkS2V5BQAAAAZoZWlnaHQJAAACAAAAAQIAAAAVTXVzdCB3YWl0IGZvciAxIGJsb2NrBAAAABBzd2FwVHJhbnNhdGlvbklkCQEAAAARQGV4dHJOYXRpdmUoMTA1OCkAAAABBQAAABd4dG5Td2FwVHJhbnNhY3Rpb25JZEtleQQAAAAOc3dhcFByaWNlSW5kZXgJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAFHh0blN3YXBQcmljZUluZGV4S2V5BAAAAAx3aXRoZHJhd19yZXMJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABBuZXV0cmlub0NvbnRyYWN0AgAAAAh3aXRoZHJhdwkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMJAARMAAAAAgUAAAAOc3dhcFByaWNlSW5kZXgJAARMAAAAAgUAAAAQc3dhcFRyYW5zYXRpb25JZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADHdpdGhkcmF3X3JlcwUAAAAMd2l0aGRyYXdfcmVzBAAAABJ3YXZlc0JhbGFuY2VBdFN3YXAJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAHHh0blN3YXBXYXZlc0JhbGFuY2VBdFN3YXBLZXkEAAAAD3d4QmFsYW5jZUF0U3dhcAkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQUAAAAZeHRuU3dhcFd4QmFsYW5jZUF0U3dhcEtleQQAAAATY3VycmVudFdhdmVzQmFsYW5jZQkAA+8AAAABBQAAAAR0aGlzBAAAABBjdXJyZW50V1hCYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAACXd4QXNzZXRJZAQAAAAMd2F2ZXNSZXdhcmRzCQAAZQAAAAIIBQAAABNjdXJyZW50V2F2ZXNCYWxhbmNlAAAACWF2YWlsYWJsZQUAAAASd2F2ZXNCYWxhbmNlQXRTd2FwBAAAAAl3eFJld2FyZHMJAABlAAAAAgUAAAAQY3VycmVudFdYQmFsYW5jZQUAAAAPd3hCYWxhbmNlQXRTd2FwAwkAAGYAAAACBQAAAAx3YXZlc1Jld2FyZHMAAAAAAAAAAAAEAAAACXdhdmVzU3dhcAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAC2RleENvbnRyYWN0AgAAABRleGNoYW5nZVRoZW5UcmFuc2ZlcgkABEwAAAACCQAEJQAAAAEJAQAAAAdBZGRyZXNzAAAAAQUAAAAKeHRuQXNzZXRJZAkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAR1bml0AwkAAGYAAAACBQAAAAx3YXZlc1Jld2FyZHMAAAAAAAAAAAAFAAAADHdhdmVzUmV3YXJkcwAAAAAAAAAAAAUAAAADbmlsAwkAAAAAAAACBQAAAAl3YXZlc1N3YXAFAAAACXdhdmVzU3dhcAQAAAAGd3hTd2FwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAALZGV4Q29udHJhY3QCAAAAFGV4Y2hhbmdlVGhlblRyYW5zZmVyCQAETAAAAAIJAAQlAAAAAQkBAAAAB0FkZHJlc3MAAAABBQAAAAp4dG5Bc3NldElkCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwkABEwAAAACAAAAAAAAAAAABQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACXd4QXNzZXRJZAUAAAAJd3hSZXdhcmRzBQAAAANuaWwDCQAAAAAAAAIFAAAABnd4U3dhcAUAAAAGd3hTd2FwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABZXQVZFU19SRVdBUkRTX0ZPUl9TV0FQBQAAAAx3YXZlc1Jld2FyZHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1dYX1JFV0FSRFNfRk9SX1NXQVAFAAAACXd4UmV3YXJkcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAeeHRuU3dhcFh0bkJhbGFuY2VBdEV4Y2hhbmdlS2V5CQAD8AAAAAIFAAAABHRoaXMFAAAACnh0bkFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGXh0blN3YXBFeGNoYW5nZUJsb2NrSWRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATeHRuU3dhcFN0YXRlRW51bUtleQUAAAAkY2FzZVh0blN3YXBTdGF0ZUV4Y2hhbmdlUmV3YXJkc09uRGV4BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQAAAAGd3hTd2FwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQUAAAALZGV4Q29udHJhY3QCAAAAFGV4Y2hhbmdlVGhlblRyYW5zZmVyCQAETAAAAAIJAAQlAAAAAQkBAAAAB0FkZHJlc3MAAAABBQAAAAp4dG5Bc3NldElkCQAETAAAAAIJAAQlAAAAAQUAAAAEdGhpcwkABEwAAAACAAAAAAAAAAAABQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACXd4QXNzZXRJZAUAAAAJd3hSZXdhcmRzBQAAAANuaWwDCQAAAAAAAAIFAAAABnd4U3dhcAUAAAAGd3hTd2FwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABZXQVZFU19SRVdBUkRTX0ZPUl9TV0FQBQAAAAx3YXZlc1Jld2FyZHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1dYX1JFV0FSRFNfRk9SX1NXQVAFAAAACXd4UmV3YXJkcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAeeHRuU3dhcFh0bkJhbGFuY2VBdEV4Y2hhbmdlS2V5CQAD8AAAAAIFAAAABHRoaXMFAAAACnh0bkFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAGXh0blN3YXBFeGNoYW5nZUJsb2NrSWRLZXkFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATeHRuU3dhcFN0YXRlRW51bUtleQUAAAAkY2FzZVh0blN3YXBTdGF0ZUV4Y2hhbmdlUmV3YXJkc09uRGV4BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABh4dG5Td2FwUGFydDNGaW5hbGl6ZVN3YXAAAAAAAwkBAAAAAiE9AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQUAAAATeHRuU3dhcFN0YXRlRW51bUtleQUAAAAkY2FzZVh0blN3YXBTdGF0ZUV4Y2hhbmdlUmV3YXJkc09uRGV4CQAAAgAAAAECAAAAJVdyb25nIHN0YXRlLCBtdXN0IGJlIEV4Y2hhbmdlIHJld2FyZHMDCQAAZwAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAGXh0blN3YXBFeGNoYW5nZUJsb2NrSWRLZXkFAAAABmhlaWdodAkAAAIAAAABAgAAABVNdXN0IHdhaXQgZm9yIDEgYmxvY2sEAAAAF3h0bkFtb3VudEJlZm9yZUV4Y2hhbmdlCQEAAAARQGV4dHJOYXRpdmUoMTA1NSkAAAABBQAAAB54dG5Td2FwWHRuQmFsYW5jZUF0RXhjaGFuZ2VLZXkEAAAACnh0blN3YXBwZWQJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEFAAAAGnh0blN3YXBYdG5Td2FwcGVkQW1vdW50S2V5BAAAABBjdXJyZW50WHRuQW1vdW50CQAD8AAAAAIFAAAABHRoaXMFAAAACnh0bkFzc2V0SWQEAAAABnJld2FyZAkAAGUAAAACBQAAABBjdXJyZW50WHRuQW1vdW50CQAAZAAAAAIFAAAAF3h0bkFtb3VudEJlZm9yZUV4Y2hhbmdlBQAAAAp4dG5Td2FwcGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAB5DVVJSRU5UX1NXQVBfWFROX1JFV0FSRF9BTU9VTlQFAAAABnJld2FyZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATeHRuU3dhcFN0YXRlRW51bUtleQUAAAAUY2FzZVh0blN3YXBTdGF0ZUlkbGUFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5JLsnFA==", "height": 3592220, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5fpUK5Hyzs7P16EmeUHUrsyLifenihF7epYvyF5FGgmY Next: 4gzp5FNuE7Jhmj39oiyw1e8W1uez3H4DScYFu717u2g6 Diff:
OldNewDifferences
101101 else {
102102 let swapTransationId = getStringValue(xtnSwapTransactionIdKey)
103103 let swapPriceIndex = getIntegerValue(xtnSwapPriceIndexKey)
104- let withdraw_res = invoke(Address(neutrinoContract), "withdraw", [toString(this), 1582674, swapTransationId], nil)
104+ let withdraw_res = invoke(Address(neutrinoContract), "withdraw", [toString(this), swapPriceIndex, swapTransationId], nil)
105105 if ((withdraw_res == withdraw_res))
106106 then {
107107 let wavesBalanceAtSwap = getIntegerValue(xtnSwapWavesBalanceAtSwapKey)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let dexContract = base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'
55
66 let neutrinoContract = base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'
77
88 let neutrinoStakingAddress = base58'3PBiotFpqjRMkkeFBccnQNUXUopy7KFez5C'
99
1010 let xtnAssetId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
1111
1212 let surfAssetId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
1313
1414 let wxAssetId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
1515
1616 let caseXtnSwapStateIdle = 0
1717
1818 let caseXtnSwapStateXtnToRewards = 1
1919
2020 let caseXtnSwapStateExchangeRewardsOnDex = 2
2121
2222 let xtnSwapStateEnumKey = "xtnSwapStateEnum"
2323
2424 let xtnSwapBlockIdKey = "xtnSwapBlockId"
2525
2626 let xtnSwapTransactionIdKey = "xtnSwapTransactionId"
2727
2828 let xtnSwapPriceIndexKey = "xtnSwapPriceIndex"
2929
3030 let xtnSwapXtnSwappedAmountKey = "xtnSwapXtnSwappedAmount"
3131
3232 let xtnSwapWavesBalanceAtSwapKey = "xtnSwapWavesBalanceAtSwap"
3333
3434 let xtnSwapWxBalanceAtSwapKey = "xtnSwapWxBalanceAtSwap"
3535
3636 let xtnSwapXtnBalanceAtExchangeKey = "xtnSwapXtnBalanceAtExchange"
3737
3838 let xtnSwapExchangeBlockIdKey = "xtnSwapExchangeBlockId"
3939
4040 @Callable(i)
4141 func constructor () = [IntegerEntry(xtnSwapStateEnumKey, caseXtnSwapStateIdle)]
4242
4343
4444
4545 @Callable(i)
4646 func xtnSwapPart1swapXTNFromNeutrino () = if ((getIntegerValue(xtnSwapStateEnumKey) != caseXtnSwapStateIdle))
4747 then throw("Wrong state, must be Idle")
4848 else {
4949 let result = invoke(Address(neutrinoContract), "swapParamsByUserSYSREADONLY", [toString(this), 0], nil)
5050 if ((result == result))
5151 then match result {
5252 case tuple: (Int, Int, Int, Int, Int, Int, Int) =>
5353 if ((tuple._3 > 0))
5454 then throw((("Time is not come yet, you need to wait " + toString(tuple._3)) + " blocks"))
5555 else {
5656 let maxSwapAmount = tuple._7
5757 if ((1000000 > maxSwapAmount))
5858 then throw("Min XTN amount to swap is 1, stake more SURF")
5959 else if ((maxSwapAmount > assetBalance(this, xtnAssetId)))
6060 then throw("XTN Balance on contract is smaller than max swap amount, increase your balance")
6161 else {
6262 let currentWavesBalance = wavesBalance(this)
6363 let currentWXBalance = assetBalance(this, wxAssetId)
6464 let swapNeutrinoToAssets = invoke(Address(neutrinoContract), "swapNeutrinoToBasket", nil, [AttachedPayment(xtnAssetId, maxSwapAmount)])
6565 if ((swapNeutrinoToAssets == swapNeutrinoToAssets))
6666 then {
6767 let priceIndex = (getIntegerValue(Address(base58'3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP'), "price_index") + 1)
6868 [IntegerEntry(xtnSwapBlockIdKey, height), StringEntry(xtnSwapTransactionIdKey, toBase58String(i.transactionId)), IntegerEntry(xtnSwapPriceIndexKey, priceIndex), IntegerEntry(xtnSwapXtnSwappedAmountKey, maxSwapAmount), IntegerEntry(xtnSwapWavesBalanceAtSwapKey, currentWavesBalance.available), IntegerEntry(xtnSwapWxBalanceAtSwapKey, currentWXBalance), IntegerEntry(xtnSwapStateEnumKey, caseXtnSwapStateXtnToRewards)]
6969 }
7070 else throw("Strict value is not equal to itself.")
7171 }
7272 }
7373 case _ =>
7474 throw("Incorrect data from neutrino smart contract")
7575 }
7676 else throw("Strict value is not equal to itself.")
7777 }
7878
7979
8080
8181 @Callable(i)
8282 func setNewPriceIndex (index) = [IntegerEntry(xtnSwapPriceIndexKey, index)]
8383
8484
8585
8686 @Callable(i)
8787 func extendPriceIndexByOneUp () = [IntegerEntry(xtnSwapPriceIndexKey, (getIntegerValue(xtnSwapPriceIndexKey) + 1))]
8888
8989
9090
9191 @Callable(i)
9292 func extendPriceIndexByOneDown () = [IntegerEntry(xtnSwapPriceIndexKey, (getIntegerValue(xtnSwapPriceIndexKey) - 1))]
9393
9494
9595
9696 @Callable(i)
9797 func xtnSwapPart2exchangeXtnSwapRewardsOnDex () = if ((getIntegerValue(xtnSwapStateEnumKey) != caseXtnSwapStateXtnToRewards))
9898 then throw("Wrong state, must be XtnToRewards")
9999 else if ((getIntegerValue(xtnSwapBlockIdKey) >= height))
100100 then throw("Must wait for 1 block")
101101 else {
102102 let swapTransationId = getStringValue(xtnSwapTransactionIdKey)
103103 let swapPriceIndex = getIntegerValue(xtnSwapPriceIndexKey)
104- let withdraw_res = invoke(Address(neutrinoContract), "withdraw", [toString(this), 1582674, swapTransationId], nil)
104+ let withdraw_res = invoke(Address(neutrinoContract), "withdraw", [toString(this), swapPriceIndex, swapTransationId], nil)
105105 if ((withdraw_res == withdraw_res))
106106 then {
107107 let wavesBalanceAtSwap = getIntegerValue(xtnSwapWavesBalanceAtSwapKey)
108108 let wxBalanceAtSwap = getIntegerValue(xtnSwapWxBalanceAtSwapKey)
109109 let currentWavesBalance = wavesBalance(this)
110110 let currentWXBalance = assetBalance(this, wxAssetId)
111111 let wavesRewards = (currentWavesBalance.available - wavesBalanceAtSwap)
112112 let wxRewards = (currentWXBalance - wxBalanceAtSwap)
113113 if ((wavesRewards > 0))
114114 then {
115115 let wavesSwap = invoke(Address(dexContract), "exchangeThenTransfer", [toString(Address(xtnAssetId)), toString(this), 0], [AttachedPayment(unit, if ((wavesRewards > 0))
116116 then wavesRewards
117117 else 0)])
118118 if ((wavesSwap == wavesSwap))
119119 then {
120120 let wxSwap = invoke(Address(dexContract), "exchangeThenTransfer", [toString(Address(xtnAssetId)), toString(this), 0], [AttachedPayment(wxAssetId, wxRewards)])
121121 if ((wxSwap == wxSwap))
122122 then [IntegerEntry("WAVES_REWARDS_FOR_SWAP", wavesRewards), IntegerEntry("WX_REWARDS_FOR_SWAP", wxRewards), IntegerEntry(xtnSwapXtnBalanceAtExchangeKey, assetBalance(this, xtnAssetId)), IntegerEntry(xtnSwapExchangeBlockIdKey, height), IntegerEntry(xtnSwapStateEnumKey, caseXtnSwapStateExchangeRewardsOnDex)]
123123 else throw("Strict value is not equal to itself.")
124124 }
125125 else throw("Strict value is not equal to itself.")
126126 }
127127 else {
128128 let wxSwap = invoke(Address(dexContract), "exchangeThenTransfer", [toString(Address(xtnAssetId)), toString(this), 0], [AttachedPayment(wxAssetId, wxRewards)])
129129 if ((wxSwap == wxSwap))
130130 then [IntegerEntry("WAVES_REWARDS_FOR_SWAP", wavesRewards), IntegerEntry("WX_REWARDS_FOR_SWAP", wxRewards), IntegerEntry(xtnSwapXtnBalanceAtExchangeKey, assetBalance(this, xtnAssetId)), IntegerEntry(xtnSwapExchangeBlockIdKey, height), IntegerEntry(xtnSwapStateEnumKey, caseXtnSwapStateExchangeRewardsOnDex)]
131131 else throw("Strict value is not equal to itself.")
132132 }
133133 }
134134 else throw("Strict value is not equal to itself.")
135135 }
136136
137137
138138
139139 @Callable(i)
140140 func xtnSwapPart3FinalizeSwap () = if ((getIntegerValue(xtnSwapStateEnumKey) != caseXtnSwapStateExchangeRewardsOnDex))
141141 then throw("Wrong state, must be Exchange rewards")
142142 else if ((getIntegerValue(xtnSwapExchangeBlockIdKey) >= height))
143143 then throw("Must wait for 1 block")
144144 else {
145145 let xtnAmountBeforeExchange = getIntegerValue(xtnSwapXtnBalanceAtExchangeKey)
146146 let xtnSwapped = getIntegerValue(xtnSwapXtnSwappedAmountKey)
147147 let currentXtnAmount = assetBalance(this, xtnAssetId)
148148 let reward = (currentXtnAmount - (xtnAmountBeforeExchange + xtnSwapped))
149149 [IntegerEntry("CURRENT_SWAP_XTN_REWARD_AMOUNT", reward), IntegerEntry(xtnSwapStateEnumKey, caseXtnSwapStateIdle)]
150150 }
151151
152152
153153 @Verifier(tx)
154154 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
155155

github/deemru/w8io/3ef1775 
38.56 ms