tx · 9WWdFLXtwTJVtFqCqNC7ex8Yqg5AujUDXxGwGsKgnbAp

3PAv42skNMWedMSNx75fMDuMcFzggaELYqK:  -0.01500000 Waves

2023.04.06 15:56 [3588361] smart account 3PAv42skNMWedMSNx75fMDuMcFzggaELYqK > SELF 0.00000000 Waves

{ "type": 13, "id": "9WWdFLXtwTJVtFqCqNC7ex8Yqg5AujUDXxGwGsKgnbAp", "fee": 1500000, "feeAssetId": null, "timestamp": 1680785826355, "version": 2, "chainId": 87, "sender": "3PAv42skNMWedMSNx75fMDuMcFzggaELYqK", "senderPublicKey": "2S8hdm8hsS8LEgawkBAPztpWr6tkd4qFjb3TPzqmm7D1", "proofs": [ "3oCsnhosqjmNqdDEexDDM2gmQanarCjjN7mm7K5kp2ZtwB3nYXLEZJ9wb23KQ79K3aKTZtUN3qHbyW1zHbCxqG5w" ], "script": "base64:AAIFAAAAAAAAAAwIAhIAEgASABIAEgAAAAAFAAAAABBuZXV0cmlub0NvbnRyYWN0AQAAABoBV3AEYqZHm+mtVmiUy++FjDCCICiaCBSWsgAAAAAWbmV1dHJpbm9TdGFraW5nQWRkcmVzcwEAAAAaAVdraDjhA9SajJ8SG8YsvCMHOQvN7RLXCl8AAAAACnh0bkFzc2V0SWQBAAAAILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAAAAAAtzdXJmQXNzZXRJZAEAAAAgktH0SuIRASv0fureIY49xfvJ8n3Oh7LtUhnwOk4kWPUAAAAACXd4QXNzZXRJZAEAAAAgkwEcq6nHbiVXzmaecba9qmv4POhYCyru2aBOuzzcFLEAAAAFAAAAAWkBAAAAD3N0YWtlVG9OZXV0cmlubwAAAAAEAAAABnJlc3VsdAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAFm5ldXRyaW5vU3Rha2luZ0FkZHJlc3MCAAAABXN0YWtlBQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAAC3N1cmZBc3NldElkAAAAAADuaygABQAAAANuaWwDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAE3N3YXBYVE5Gcm9tTmV1dHJpbm8AAAAABAAAAAZyZXN1bHQJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABBuZXV0cmlub0NvbnRyYWN0AgAAABtzd2FwUGFyYW1zQnlVc2VyU1lTUkVBRE9OTFkJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAZyZXN1bHQFAAAABnJlc3VsdAQAAAAHJG1hdGNoMAUAAAAGcmVzdWx0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAACMoSW50LCBJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50KQQAAAAFdHVwbGUFAAAAByRtYXRjaDADCQAAZgAAAAIIBQAAAAV0dXBsZQAAAAJfMwAAAAAAAAAAAAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAnVGltZSBpcyBub3QgY29tZSB5ZXQsIHlvdSBuZWVkIHRvIHdhaXQgCQABpAAAAAEIBQAAAAV0dXBsZQAAAAJfMwIAAAAHIGJsb2NrcwQAAAANbWF4U3dhcEFtb3VudAgFAAAABXR1cGxlAAAAAl83AwkAAGYAAAACAAAAAAAAD0JABQAAAA1tYXhTd2FwQW1vdW50CQAAAgAAAAECAAAAG01pbiBYVE4gYW1vdW50IHRvIHN3YXAgaXMgMQQAAAATY3VycmVudFdhdmVzQmFsYW5jZQkAA+8AAAABBQAAAAR0aGlzAwkAAAAAAAACBQAAABNjdXJyZW50V2F2ZXNCYWxhbmNlBQAAABNjdXJyZW50V2F2ZXNCYWxhbmNlBAAAABBjdXJyZW50V1hCYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAACXd4QXNzZXRJZAMJAAAAAAAAAgUAAAAQY3VycmVudFdYQmFsYW5jZQUAAAAQY3VycmVudFdYQmFsYW5jZQQAAAAUc3dhcE5ldXRyaW5vVG9Bc3NldHMJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABBuZXV0cmlub0NvbnRyYWN0AgAAABRzd2FwTmV1dHJpbm9Ub0Jhc2tldAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAp4dG5Bc3NldElkBQAAAA1tYXhTd2FwQW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAAFHN3YXBOZXV0cmlub1RvQXNzZXRzBQAAABRzd2FwTmV1dHJpbm9Ub0Fzc2V0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPeHRuU3dhcGVkQW1vdW50BQAAAA1tYXhTd2FwQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJ3YXZlc0JhbGFuY2VBdFN3YXAIBQAAABNjdXJyZW50V2F2ZXNCYWxhbmNlAAAACWF2YWlsYWJsZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPd3hCYWxhbmNlQXRTd2FwBQAAABBjdXJyZW50V1hCYWxhbmNlCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACAgAAABF4dG5Td2FwSW5Qcm9ncmVzcwYFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACtJbmNvcnJlY3QgZGF0YSBmcm9tIG5ldXRyaW5vIHNtYXJ0IGNvbnRyYWN0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA93cml0ZVByaWNlSW5kZXgAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApzd2FwX2luZGV4CQAAZAAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVcjs60SXJOkyuw5/k9G1s1WTS37EPtjmHoCAAAAC3ByaWNlX2luZGV4AAAAAAAAAAABBQAAAANuaWwAAAABaQEAAAAnZXhjaGFuZ2VYdG5SZXdhcmRzQW5kQ2FsY3VsYXRlWHRuUHJvZml0AAAAAAMJAQAAAAEhAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTYpAAAAAQIAAAAReHRuU3dhcEluUHJvZ3Jlc3MJAAACAAAAAQIAAAA1TWFpbiBYVE4gU3dhcCBpc24ndCBydW5uaW5nLCB5b3UgbmVlZCB0byBydW4gaXQgZmlyc3QEAAAABHR4SWQBAAAAGgFXYpB7jo1asvp2L5zibyxJPNbPb/eWSIT2BAAAAAx3aXRoZHJhd19yZXMJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABBuZXV0cmlub0NvbnRyYWN0AgAAAAh3aXRoZHJhdwkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMJAARMAAAAAgAAAAAAABgbRQkABEwAAAACAgAAACxHdWVkSGZNUjFad1UzaEthV3RaWnQ3SE5BWkdVaDhBdlVrNXJ6NGZUcFp1UAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAADHdpdGhkcmF3X3JlcwUAAAAMd2l0aGRyYXdfcmVzBAAAABZ3YXZlc0JhbGFuY2VCZWZvcmVTd2FwCQEAAAARQGV4dHJOYXRpdmUoMTA1NSkAAAABAgAAABJ3YXZlc0JhbGFuY2VBdFN3YXAEAAAAE3d4QmFsYW5jZUJlZm9yZVN3YXAJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAECAAAAD3d4QmFsYW5jZUF0U3dhcAQAAAATY3VycmVudFdhdmVzQmFsYW5jZQkAA+8AAAABBQAAAAR0aGlzAwkAAAAAAAACBQAAABNjdXJyZW50V2F2ZXNCYWxhbmNlBQAAABNjdXJyZW50V2F2ZXNCYWxhbmNlBAAAABBjdXJyZW50V1hCYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAACXd4QXNzZXRJZAMJAAAAAAAAAgUAAAAQY3VycmVudFdYQmFsYW5jZQUAAAAQY3VycmVudFdYQmFsYW5jZQQAAAARY3VycmVudFhUTkJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAKeHRuQXNzZXRJZAMJAAAAAAAAAgUAAAARY3VycmVudFhUTkJhbGFuY2UFAAAAEWN1cnJlbnRYVE5CYWxhbmNlBAAAABFyZXdhcmRBbW91bnRXYXZlcwkAAGUAAAACCAUAAAATY3VycmVudFdhdmVzQmFsYW5jZQAAAAlhdmFpbGFibGUFAAAAFndhdmVzQmFsYW5jZUJlZm9yZVN3YXAEAAAADnJld2FyZEFtb3VudFdYCQAAZQAAAAIFAAAAEGN1cnJlbnRXWEJhbGFuY2UFAAAAE3d4QmFsYW5jZUJlZm9yZVN3YXADCQAAZwAAAAIAAAAAAAAAAAAFAAAAEXJld2FyZEFtb3VudFdhdmVzCQAAAgAAAAECAAAAG1dhdmVzIHJld2FyZCBhbW91bnQgaXMgemVybwMJAABnAAAAAgAAAAAAAAAAAAUAAAAOcmV3YXJkQW1vdW50V1gJAAACAAAAAQIAAAAYV1ggcmV3YXJkIGFtb3VudCBpcyB6ZXJvBAAAAAl3YXZlc1N3YXAJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABAQAAABoBV8pr/J/Xy7o1PTtmmh6OsIpSpzSimkOUggIAAAAUZXhjaGFuZ2VUaGVuVHJhbnNmZXIJAARMAAAAAgIAAAAsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEdW5pdAUAAAARcmV3YXJkQW1vdW50V2F2ZXMFAAAAA25pbAMJAAAAAAAAAgUAAAAJd2F2ZXNTd2FwBQAAAAl3YXZlc1N3YXAEAAAAI2N1cnJlbnRYVE5CYWxhbmNlQWZ0ZXJXYXZlc0V4Y2hhbmdlCQAD8AAAAAIFAAAABHRoaXMFAAAACnh0bkFzc2V0SWQDCQAAAAAAAAIFAAAAI2N1cnJlbnRYVE5CYWxhbmNlQWZ0ZXJXYXZlc0V4Y2hhbmdlBQAAACNjdXJyZW50WFROQmFsYW5jZUFmdGVyV2F2ZXNFeGNoYW5nZQQAAAALd2F2ZXNSZXdhcmQJAABlAAAAAgUAAAAjY3VycmVudFhUTkJhbGFuY2VBZnRlcldhdmVzRXhjaGFuZ2UFAAAAEWN1cnJlbnRYVE5CYWxhbmNlBAAAAAZ3eFN3YXAJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABAQAAABoBV8pr/J/Xy7o1PTtmmh6OsIpSpzSimkOUggIAAAAUZXhjaGFuZ2VUaGVuVHJhbnNmZXIJAARMAAAAAgIAAAAsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAJAARMAAAAAgkABCUAAAABBQAAAAR0aGlzCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAJd3hBc3NldElkBQAAAA5yZXdhcmRBbW91bnRXWAUAAAADbmlsAwkAAAAAAAACBQAAAAZ3eFN3YXAFAAAABnd4U3dhcAQAAAAgY3VycmVudFhUTkJhbGFuY2VBZnRlcldYRXhjaGFuZ2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAKeHRuQXNzZXRJZAMJAAAAAAAAAgUAAAAgY3VycmVudFhUTkJhbGFuY2VBZnRlcldYRXhjaGFuZ2UFAAAAIGN1cnJlbnRYVE5CYWxhbmNlQWZ0ZXJXWEV4Y2hhbmdlBAAAAAh3eFJld2FyZAkAAGUAAAACBQAAACBjdXJyZW50WFROQmFsYW5jZUFmdGVyV1hFeGNoYW5nZQUAAAAjY3VycmVudFhUTkJhbGFuY2VBZnRlcldhdmVzRXhjaGFuZ2UEAAAADnRvdGFsWFROUmV3YXJkCQAAZAAAAAIFAAAAC3dhdmVzUmV3YXJkBQAAAAh3eFJld2FyZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAfRVhDSEFOR0VfV0FWRVNfQkFMQU5DRV9BVF9TVEFSVAgFAAAAE2N1cnJlbnRXYXZlc0JhbGFuY2UAAAAJYXZhaWxhYmxlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABxFWENIQU5HRV9XWF9CQUxBTkNFX0FUX1NUQVJUBQAAABBjdXJyZW50V1hCYWxhbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAB1FWENIQU5HRV9YVE5fQkFMQU5DRV9BVF9TVEFSVAUAAAARY3VycmVudFhUTkJhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAKEVYQ0hBTkdFX0VBUk5FRF9XQVZFU19GUk9NX01BSU5fWFROX1NXQVAFAAAAEXJld2FyZEFtb3VudFdhdmVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAACVFWENIQU5HRV9FQVJORURfV1hfRlJPTV9NQUlOX1hUTl9TV0FQBQAAAA5yZXdhcmRBbW91bnRXWAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAApRVhDSEFOR0VfWFROX0JBTEFOQ0VfQUZURVJfV0FWRVNfRVhDSEFOR0UFAAAAI2N1cnJlbnRYVE5CYWxhbmNlQWZ0ZXJXYXZlc0V4Y2hhbmdlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAACpFWENIQU5HRV9YVE5fRUFSTklOR1NfQUZURVJfV0FWRVNfRVhDSEFOR0UFAAAAC3dhdmVzUmV3YXJkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAACZFWENIQU5HRV9YVE5fQkFMQU5DRV9BRlRFUl9XWF9FWENIQU5HRQUAAAAgY3VycmVudFhUTkJhbGFuY2VBZnRlcldYRXhjaGFuZ2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAJ0VYQ0hBTkdFX1hUTl9FQVJOSU5HU19BRlRFUl9XWF9FWENIQU5HRQUAAAAId3hSZXdhcmQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAKUVYQ0hBTkdFX1hUTl9UT1RBTF9FUk5JTkdTX0FGVEVSX0VYQ0hBTkdFBQAAAA50b3RhbFhUTlJld2FyZAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgIAAAAReHRuU3dhcEluUHJvZ3Jlc3MHBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAhtYWluU3dhcAAAAAAEAAAABnJlc3VsdAkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QCAAAAG3N3YXBQYXJhbXNCeVVzZXJTWVNSRUFET05MWQkABEwAAAACCQAEJQAAAAEFAAAABHRoaXMJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0BAAAAAckbWF0Y2gwBQAAAAZyZXN1bHQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAIyhJbnQsIEludCwgSW50LCBJbnQsIEludCwgSW50LCBJbnQpBAAAAAV0dXBsZQUAAAAHJG1hdGNoMAMJAABmAAAAAggFAAAABXR1cGxlAAAAAl8zAAAAAAAAAAAACQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACdUaW1lIGlzIG5vdCBjb21lIHlldCwgeW91IG5lZWQgdG8gd2FpdCAJAAGkAAAAAQgFAAAABXR1cGxlAAAAAl8zAgAAAAcgYmxvY2tzBAAAAA1tYXhTd2FwQW1vdW50CAUAAAAFdHVwbGUAAAACXzcDCQAAZwAAAAIAAAAAAAAAAAAFAAAADW1heFN3YXBBbW91bnQJAAACAAAAAQIAAAAhTm90aGluZyB0byBzd2FwLCBzdGFrZSBTVVJGIGZpcnN0BAAAABBjdXJyZW50WFROQW1vdW50CQAD8AAAAAIFAAAABHRoaXMFAAAACnh0bkFzc2V0SWQDCQAAZgAAAAIFAAAADW1heFN3YXBBbW91bnQFAAAAEGN1cnJlbnRYVE5BbW91bnQJAAACAAAAAQIAAAA2WFROIGJhbGFuY2Ugb24gYWNjb3VudCBpcyBzbWFsbGVyIHRoYXQgeW91ciBtYXggYW1vdW50BAAAABNjdXJyZW50V2F2ZXNCYWxhbmNlCQAD7wAAAAEFAAAABHRoaXMDCQAAAAAAAAIFAAAAE2N1cnJlbnRXYXZlc0JhbGFuY2UFAAAAE2N1cnJlbnRXYXZlc0JhbGFuY2UEAAAAEGN1cnJlbnRXWEJhbGFuY2UJAAPwAAAAAgUAAAAEdGhpcwUAAAAJd3hBc3NldElkAwkAAAAAAAACBQAAABBjdXJyZW50V1hCYWxhbmNlBQAAABBjdXJyZW50V1hCYWxhbmNlBAAAABRzd2FwTmV1dHJpbm9Ub0Fzc2V0cwkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAEG5ldXRyaW5vQ29udHJhY3QCAAAAFHN3YXBOZXV0cmlub1RvQmFza2V0BQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAACnh0bkFzc2V0SWQFAAAADW1heFN3YXBBbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAUc3dhcE5ldXRyaW5vVG9Bc3NldHMFAAAAFHN3YXBOZXV0cmlub1RvQXNzZXRzBAAAAA9uZXdXYXZlc0JhbGFuY2UJAAPvAAAAAQUAAAAEdGhpcwQAAAAMbmV3V1hCYWxhbmNlCQAD8AAAAAIFAAAABHRoaXMFAAAACXd4QXNzZXRJZAQAAAANd2F2ZXNFYXJuaW5ncwkAAGUAAAACCAUAAAAPbmV3V2F2ZXNCYWxhbmNlAAAACWF2YWlsYWJsZQgFAAAAE2N1cnJlbnRXYXZlc0JhbGFuY2UAAAAJYXZhaWxhYmxlBAAAAAp3eEVhcm5pbmdzCQAAZQAAAAIFAAAADG5ld1dYQmFsYW5jZQUAAAAQY3VycmVudFdYQmFsYW5jZQQAAAAJd2F2ZXNTd2FwCQAD/AAAAAQJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVfKa/yf18u6NT07ZpoejrCKUqc0oppDlIICAAAAFGV4Y2hhbmdlVGhlblRyYW5zZmVyCQAETAAAAAICAAAALERHMnhGa1BkRHdLVW9Ca3pHQWhRdExwU0d6ZlhMaUNZUEV6ZUtIMkFkMjRwCQAETAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAETAAAAAIAAAAAAAAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgUAAAAEdW5pdAUAAAANd2F2ZXNFYXJuaW5ncwUAAAADbmlsAwkAAAAAAAACBQAAAAl3YXZlc1N3YXAFAAAACXdhdmVzU3dhcAQAAAAYeHRuQmFsYW5jZUFmdGVyV2F2ZXNTd2FwCQAD8AAAAAIFAAAABHRoaXMFAAAACnh0bkFzc2V0SWQDCQAAAAAAAAIFAAAAGHh0bkJhbGFuY2VBZnRlcldhdmVzU3dhcAUAAAAYeHRuQmFsYW5jZUFmdGVyV2F2ZXNTd2FwBAAAABd4dG5FYXJpbmdzRnJvbVdhdmVzU3dhcAkAAGUAAAACBQAAABh4dG5CYWxhbmNlQWZ0ZXJXYXZlc1N3YXAJAABlAAAAAgUAAAAQY3VycmVudFhUTkFtb3VudAUAAAANbWF4U3dhcEFtb3VudAMJAAAAAAAAAgUAAAAXeHRuRWFyaW5nc0Zyb21XYXZlc1N3YXAFAAAAF3h0bkVhcmluZ3NGcm9tV2F2ZXNTd2FwBAAAAAZ3eFN3YXAJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABAQAAABoBV8pr/J/Xy7o1PTtmmh6OsIpSpzSimkOUggIAAAAUZXhjaGFuZ2VUaGVuVHJhbnNmZXIJAARMAAAAAgIAAAAsREcyeEZrUGREd0tVb0JrekdBaFF0THBTR3pmWExpQ1lQRXplS0gyQWQyNHAJAARMAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAl3eEFzc2V0SWQFAAAACnd4RWFybmluZ3MFAAAAA25pbAMJAAAAAAAAAgUAAAAGd3hTd2FwBQAAAAZ3eFN3YXAEAAAAFXh0bkJhbGFuY2VBZnRlcld4U3dhcAkAA/AAAAACBQAAAAR0aGlzBQAAAAp4dG5Bc3NldElkAwkAAAAAAAACBQAAABV4dG5CYWxhbmNlQWZ0ZXJXeFN3YXAFAAAAFXh0bkJhbGFuY2VBZnRlcld4U3dhcAQAAAAUeHRuRWFyaW5nc0Zyb21XeFN3YXAJAABlAAAAAgUAAAAYeHRuQmFsYW5jZUFmdGVyV2F2ZXNTd2FwCQAAZQAAAAIFAAAAEGN1cnJlbnRYVE5BbW91bnQFAAAADW1heFN3YXBBbW91bnQDCQAAAAAAAAIFAAAAFHh0bkVhcmluZ3NGcm9tV3hTd2FwBQAAABR4dG5FYXJpbmdzRnJvbVd4U3dhcAQAAAAPeHRuVG90YWxFYXJuaW5zCQAAZAAAAAIFAAAAF3h0bkVhcmluZ3NGcm9tV2F2ZXNTd2FwBQAAABR4dG5FYXJpbmdzRnJvbVd4U3dhcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAWTWF4X1hUTl9BbW91bnRfVG9fU3dhcAUAAAANbWF4U3dhcEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAbWFROX0Ftb3VudF9CZWZvcmVfTWFpbl9Td2FwBQAAABBjdXJyZW50WFROQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAB1XYXZlc19BbW91bnRfQmVmb3JlX01haW5fU3dhcAgFAAAAE2N1cnJlbnRXYXZlc0JhbGFuY2UAAAAJYXZhaWxhYmxlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpXWF9BbW91bnRfQmVmb3JlX01haW5fU3dhcAUAAAAQY3VycmVudFdYQmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAcV2F2ZXNfQW1vdW50X0FGVEVSX01haW5fU3dhcAgFAAAAD25ld1dhdmVzQmFsYW5jZQAAAAlhdmFpbGFibGUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGVdYX0Ftb3VudF9BRlRFUl9NYWluX1N3YXAFAAAADG5ld1dYQmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXV2F2ZXNfRWFybmluZ3NfRm9yX1N3YXAFAAAADXdhdmVzRWFybmluZ3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFdYX0Vhcm5pbmdzX0Zvcl9Td2FwBQAAAAp3eEVhcm5pbmdzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAACRYVE5fQmFsYW5jZV9BRlRFUl9XQVZFU19EZXhfRXhjaGFuZ2UFAAAAGHh0bkJhbGFuY2VBZnRlcldhdmVzU3dhcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAlWFROX0Vhcm5pbmdzX0FGVEVSX1dBVkVTX0RleF9FeGNoYW5nZQUAAAAXeHRuRWFyaW5nc0Zyb21XYXZlc1N3YXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAIVhUTl9CYWxhbmNlX0FGVEVSX1dYX0RleF9FeGNoYW5nZQUAAAAVeHRuQmFsYW5jZUFmdGVyV3hTd2FwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAACJYVE5fRWFybmluZ3NfQUZURVJfV1hfRGV4X0V4Y2hhbmdlBQAAABR4dG5FYXJpbmdzRnJvbVd4U3dhcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASWFROX1RvdGFsX0Vhcm5pbmdzBQAAAA94dG5Ub3RhbEVhcm5pbnMFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAABJDYW4ndCBkZWNvZGUgdHVwbGUJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXlqh4Br", "height": 3588361, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CJCqCTd17zHz6pebbneBBfgFTFQ6Xtei5M3Q16bSRpYg Next: 6GGxBTWrSUcZxwi1ifQmp1h1LZ7dzcQSc6gWvrmTBPXA Diff:
OldNewDifferences
5555 }
5656 else throw("Strict value is not equal to itself.")
5757 }
58+
59+
60+
61+@Callable(i)
62+func writePriceIndex () = [IntegerEntry("swap_index", (getIntegerValue(Address(base58'3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP'), "price_index") + 1))]
5863
5964
6065
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let neutrinoContract = base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'
55
66 let neutrinoStakingAddress = base58'3PBiotFpqjRMkkeFBccnQNUXUopy7KFez5C'
77
88 let xtnAssetId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
99
1010 let surfAssetId = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
1111
1212 let wxAssetId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
1313
1414 @Callable(i)
1515 func stakeToNeutrino () = {
1616 let result = invoke(Address(neutrinoStakingAddress), "stake", nil, [AttachedPayment(surfAssetId, 4000000000)])
1717 if ((result == result))
1818 then nil
1919 else throw("Strict value is not equal to itself.")
2020 }
2121
2222
2323
2424 @Callable(i)
2525 func swapXTNFromNeutrino () = {
2626 let result = invoke(Address(neutrinoContract), "swapParamsByUserSYSREADONLY", [toString(this), 0], nil)
2727 if ((result == result))
2828 then match result {
2929 case tuple: (Int, Int, Int, Int, Int, Int, Int) =>
3030 if ((tuple._3 > 0))
3131 then throw((("Time is not come yet, you need to wait " + toString(tuple._3)) + " blocks"))
3232 else {
3333 let maxSwapAmount = tuple._7
3434 if ((1000000 > maxSwapAmount))
3535 then throw("Min XTN amount to swap is 1")
3636 else {
3737 let currentWavesBalance = wavesBalance(this)
3838 if ((currentWavesBalance == currentWavesBalance))
3939 then {
4040 let currentWXBalance = assetBalance(this, wxAssetId)
4141 if ((currentWXBalance == currentWXBalance))
4242 then {
4343 let swapNeutrinoToAssets = invoke(Address(neutrinoContract), "swapNeutrinoToBasket", nil, [AttachedPayment(xtnAssetId, maxSwapAmount)])
4444 if ((swapNeutrinoToAssets == swapNeutrinoToAssets))
4545 then [IntegerEntry("xtnSwapedAmount", maxSwapAmount), IntegerEntry("wavesBalanceAtSwap", currentWavesBalance.available), IntegerEntry("wxBalanceAtSwap", currentWXBalance), BooleanEntry("xtnSwapInProgress", true)]
4646 else throw("Strict value is not equal to itself.")
4747 }
4848 else throw("Strict value is not equal to itself.")
4949 }
5050 else throw("Strict value is not equal to itself.")
5151 }
5252 }
5353 case _ =>
5454 throw("Incorrect data from neutrino smart contract")
5555 }
5656 else throw("Strict value is not equal to itself.")
5757 }
58+
59+
60+
61+@Callable(i)
62+func writePriceIndex () = [IntegerEntry("swap_index", (getIntegerValue(Address(base58'3P5Bfd58PPfNvBM2Hy8QfbcDqMeNtzg7KfP'), "price_index") + 1))]
5863
5964
6065
6166 @Callable(i)
6267 func exchangeXtnRewardsAndCalculateXtnProfit () = if (!(getBooleanValue("xtnSwapInProgress")))
6368 then throw("Main XTN Swap isn't running, you need to run it first")
6469 else {
6570 let txId = base58'3PAv42skNMWedMSNx75fMDuMcFzggaELYqK'
6671 let withdraw_res = invoke(Address(neutrinoContract), "withdraw", [toString(this), 1579845, "GuedHfMR1ZwU3hKaWtZZt7HNAZGUh8AvUk5rz4fTpZuP"], nil)
6772 if ((withdraw_res == withdraw_res))
6873 then {
6974 let wavesBalanceBeforeSwap = getIntegerValue("wavesBalanceAtSwap")
7075 let wxBalanceBeforeSwap = getIntegerValue("wxBalanceAtSwap")
7176 let currentWavesBalance = wavesBalance(this)
7277 if ((currentWavesBalance == currentWavesBalance))
7378 then {
7479 let currentWXBalance = assetBalance(this, wxAssetId)
7580 if ((currentWXBalance == currentWXBalance))
7681 then {
7782 let currentXTNBalance = assetBalance(this, xtnAssetId)
7883 if ((currentXTNBalance == currentXTNBalance))
7984 then {
8085 let rewardAmountWaves = (currentWavesBalance.available - wavesBalanceBeforeSwap)
8186 let rewardAmountWX = (currentWXBalance - wxBalanceBeforeSwap)
8287 if ((0 >= rewardAmountWaves))
8388 then throw("Waves reward amount is zero")
8489 else if ((0 >= rewardAmountWX))
8590 then throw("WX reward amount is zero")
8691 else {
8792 let wavesSwap = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeThenTransfer", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", toString(this), 0], [AttachedPayment(unit, rewardAmountWaves)])
8893 if ((wavesSwap == wavesSwap))
8994 then {
9095 let currentXTNBalanceAfterWavesExchange = assetBalance(this, xtnAssetId)
9196 if ((currentXTNBalanceAfterWavesExchange == currentXTNBalanceAfterWavesExchange))
9297 then {
9398 let wavesReward = (currentXTNBalanceAfterWavesExchange - currentXTNBalance)
9499 let wxSwap = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeThenTransfer", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", toString(this), 0], [AttachedPayment(wxAssetId, rewardAmountWX)])
95100 if ((wxSwap == wxSwap))
96101 then {
97102 let currentXTNBalanceAfterWXExchange = assetBalance(this, xtnAssetId)
98103 if ((currentXTNBalanceAfterWXExchange == currentXTNBalanceAfterWXExchange))
99104 then {
100105 let wxReward = (currentXTNBalanceAfterWXExchange - currentXTNBalanceAfterWavesExchange)
101106 let totalXTNReward = (wavesReward + wxReward)
102107 [IntegerEntry("EXCHANGE_WAVES_BALANCE_AT_START", currentWavesBalance.available), IntegerEntry("EXCHANGE_WX_BALANCE_AT_START", currentWXBalance), IntegerEntry("EXCHANGE_XTN_BALANCE_AT_START", currentXTNBalance), IntegerEntry("EXCHANGE_EARNED_WAVES_FROM_MAIN_XTN_SWAP", rewardAmountWaves), IntegerEntry("EXCHANGE_EARNED_WX_FROM_MAIN_XTN_SWAP", rewardAmountWX), IntegerEntry("EXCHANGE_XTN_BALANCE_AFTER_WAVES_EXCHANGE", currentXTNBalanceAfterWavesExchange), IntegerEntry("EXCHANGE_XTN_EARNINGS_AFTER_WAVES_EXCHANGE", wavesReward), IntegerEntry("EXCHANGE_XTN_BALANCE_AFTER_WX_EXCHANGE", currentXTNBalanceAfterWXExchange), IntegerEntry("EXCHANGE_XTN_EARNINGS_AFTER_WX_EXCHANGE", wxReward), IntegerEntry("EXCHANGE_XTN_TOTAL_ERNINGS_AFTER_EXCHANGE", totalXTNReward), BooleanEntry("xtnSwapInProgress", false)]
103108 }
104109 else throw("Strict value is not equal to itself.")
105110 }
106111 else throw("Strict value is not equal to itself.")
107112 }
108113 else throw("Strict value is not equal to itself.")
109114 }
110115 else throw("Strict value is not equal to itself.")
111116 }
112117 }
113118 else throw("Strict value is not equal to itself.")
114119 }
115120 else throw("Strict value is not equal to itself.")
116121 }
117122 else throw("Strict value is not equal to itself.")
118123 }
119124 else throw("Strict value is not equal to itself.")
120125 }
121126
122127
123128
124129 @Callable(i)
125130 func mainSwap () = {
126131 let result = invoke(Address(neutrinoContract), "swapParamsByUserSYSREADONLY", [toString(this), 0], nil)
127132 if ((result == result))
128133 then match result {
129134 case tuple: (Int, Int, Int, Int, Int, Int, Int) =>
130135 if ((tuple._3 > 0))
131136 then throw((("Time is not come yet, you need to wait " + toString(tuple._3)) + " blocks"))
132137 else {
133138 let maxSwapAmount = tuple._7
134139 if ((0 >= maxSwapAmount))
135140 then throw("Nothing to swap, stake SURF first")
136141 else {
137142 let currentXTNAmount = assetBalance(this, xtnAssetId)
138143 if ((maxSwapAmount > currentXTNAmount))
139144 then throw("XTN balance on account is smaller that your max amount")
140145 else {
141146 let currentWavesBalance = wavesBalance(this)
142147 if ((currentWavesBalance == currentWavesBalance))
143148 then {
144149 let currentWXBalance = assetBalance(this, wxAssetId)
145150 if ((currentWXBalance == currentWXBalance))
146151 then {
147152 let swapNeutrinoToAssets = invoke(Address(neutrinoContract), "swapNeutrinoToBasket", nil, [AttachedPayment(xtnAssetId, maxSwapAmount)])
148153 if ((swapNeutrinoToAssets == swapNeutrinoToAssets))
149154 then {
150155 let newWavesBalance = wavesBalance(this)
151156 let newWXBalance = assetBalance(this, wxAssetId)
152157 let wavesEarnings = (newWavesBalance.available - currentWavesBalance.available)
153158 let wxEarnings = (newWXBalance - currentWXBalance)
154159 let wavesSwap = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeThenTransfer", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", toString(i.caller), 0], [AttachedPayment(unit, wavesEarnings)])
155160 if ((wavesSwap == wavesSwap))
156161 then {
157162 let xtnBalanceAfterWavesSwap = assetBalance(this, xtnAssetId)
158163 if ((xtnBalanceAfterWavesSwap == xtnBalanceAfterWavesSwap))
159164 then {
160165 let xtnEaringsFromWavesSwap = (xtnBalanceAfterWavesSwap - (currentXTNAmount - maxSwapAmount))
161166 if ((xtnEaringsFromWavesSwap == xtnEaringsFromWavesSwap))
162167 then {
163168 let wxSwap = invoke(Address(base58'3PLPCb3wF2H2gtzohoAjeWcGaMKEiJvtE5X'), "exchangeThenTransfer", ["DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", toString(i.caller), 0], [AttachedPayment(wxAssetId, wxEarnings)])
164169 if ((wxSwap == wxSwap))
165170 then {
166171 let xtnBalanceAfterWxSwap = assetBalance(this, xtnAssetId)
167172 if ((xtnBalanceAfterWxSwap == xtnBalanceAfterWxSwap))
168173 then {
169174 let xtnEaringsFromWxSwap = (xtnBalanceAfterWavesSwap - (currentXTNAmount - maxSwapAmount))
170175 if ((xtnEaringsFromWxSwap == xtnEaringsFromWxSwap))
171176 then {
172177 let xtnTotalEarnins = (xtnEaringsFromWavesSwap + xtnEaringsFromWxSwap)
173178 [IntegerEntry("Max_XTN_Amount_To_Swap", maxSwapAmount), IntegerEntry("XTN_Amount_Before_Main_Swap", currentXTNAmount), IntegerEntry("Waves_Amount_Before_Main_Swap", currentWavesBalance.available), IntegerEntry("WX_Amount_Before_Main_Swap", currentWXBalance), IntegerEntry("Waves_Amount_AFTER_Main_Swap", newWavesBalance.available), IntegerEntry("WX_Amount_AFTER_Main_Swap", newWXBalance), IntegerEntry("Waves_Earnings_For_Swap", wavesEarnings), IntegerEntry("WX_Earnings_For_Swap", wxEarnings), IntegerEntry("XTN_Balance_AFTER_WAVES_Dex_Exchange", xtnBalanceAfterWavesSwap), IntegerEntry("XTN_Earnings_AFTER_WAVES_Dex_Exchange", xtnEaringsFromWavesSwap), IntegerEntry("XTN_Balance_AFTER_WX_Dex_Exchange", xtnBalanceAfterWxSwap), IntegerEntry("XTN_Earnings_AFTER_WX_Dex_Exchange", xtnEaringsFromWxSwap), IntegerEntry("XTN_Total_Earnings", xtnTotalEarnins)]
174179 }
175180 else throw("Strict value is not equal to itself.")
176181 }
177182 else throw("Strict value is not equal to itself.")
178183 }
179184 else throw("Strict value is not equal to itself.")
180185 }
181186 else throw("Strict value is not equal to itself.")
182187 }
183188 else throw("Strict value is not equal to itself.")
184189 }
185190 else throw("Strict value is not equal to itself.")
186191 }
187192 else throw("Strict value is not equal to itself.")
188193 }
189194 else throw("Strict value is not equal to itself.")
190195 }
191196 else throw("Strict value is not equal to itself.")
192197 }
193198 }
194199 }
195200 case _ =>
196201 throw("Can't decode tuple")
197202 }
198203 else throw("Strict value is not equal to itself.")
199204 }
200205
201206
202207 @Verifier(tx)
203208 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
204209

github/deemru/w8io/3ef1775 
46.54 ms