tx · BRtswwF8yTWd1ggCvDoanT9mNh1mvGsNkJNK3fr6L1Wq

3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo:  -0.04000000 Waves

2021.09.05 20:13 [1690041] smart account 3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo > SELF 0.00000000 Waves

{ "type": 13, "id": "BRtswwF8yTWd1ggCvDoanT9mNh1mvGsNkJNK3fr6L1Wq", "fee": 4000000, "feeAssetId": null, "timestamp": 1630861997545, "version": 2, "chainId": 84, "sender": "3MvGMtmdY1eSW4iY922zj5bx8hBfyP1qgHo", "senderPublicKey": "CD4N2SBeZVBUwmtsqwfmQ3ZKnBP3AxpZCvJ5QkHytUed", "proofs": [ "5bYQhUJWgWwBWzDJC6QMLwioqJRLMCpA87BjdDgsz6SF1WTBtSTYrPAtX3D2sAnqsiVpoqdgW31akXgw6DoVzRnJ" ], "script": "base64:AAIFAAAAAAAAADMIAhIDCgEIEgUKAwgIARIECgIIGBIDCgEIEgMKAQgSBAoCCAQSAwoBCBIDCgEIEgMKAQgAAAAMAAAAAAZjb25maWcJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMCAAAABmNvbmZpZwIAAAAAAAAAAAVhZG1pbgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAGY29uZmlnAgAAAAVhZG1pbgIAAAAAAAAAAAVwb29scwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwIAAAAFcG9vbHMCAAAAAAEAAAAHaXNBZG1pbgAAAAEAAAANY2FsbGVyQWRkcmVzcwMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAFYWRtaW4GBwEAAAAJY2hlY2tQb29sAAAAAQAAAAdwb29sQWRkAwkBAAAACGNvbnRhaW5zAAAAAgUAAAAFcG9vbHMFAAAAB3Bvb2xBZGQGBwEAAAALd3JpdGVTdHJpbmcAAAACAAAAA2tleQAAAAtzdHJpbmdWYWx1ZQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5BQAAAAtzdHJpbmdWYWx1ZQEAAAAMd3JpdGVJbnRlZ2VyAAAAAgAAAANrZXkAAAAMaW50ZWdlclZhbHVlCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAADa2V5BQAAAAxpbnRlZ2VyVmFsdWUBAAAAEmNoZWNrUG9vbExpcXVpZGl0eQAAAAIAAAALcG9vbEFkZHJlc3MAAAAGYW1vdW50BAAAAAt0b3RhbFN1cHBseQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAC3RvdGFsU3VwcGx5BAAAAAt0b3RhbEJvcnJvdwkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAC3RvdGFsQm9ycm93BAAAABJhdmFpbGFibGVMaXF1aWRpdHkJAABlAAAAAgUAAAALdG90YWxTdXBwbHkFAAAAC3RvdGFsQm9ycm93AwkAAGcAAAACBQAAABJhdmFpbGFibGVMaXF1aWRpdHkFAAAABmFtb3VudAYHAQAAABJnZXRIZWFsdGhQYXJhbWV0ZXIAAAAGAAAABHVzZXIAAAALcG9vbEFkZHJlc3MAAAANbmV3RGVidEFtb3VudAAAAAluZXdEZWJ0SWQAAAAQY29sbGF0ZXJhbEFtb3VudAAAAAxjb2xsYXRlcmFsSWQEAAAABnJlc3VsdAkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwIAAAAWZ2V0VXNlckhlYWx0aFBhcmFtZXRlcgkABEwAAAACBQAAAAR1c2VyCQAETAAAAAIFAAAAEGNvbGxhdGVyYWxBbW91bnQJAARMAAAAAgUAAAAMY29sbGF0ZXJhbElkCQAETAAAAAIFAAAADW5ld0RlYnRBbW91bnQJAARMAAAAAgUAAAAJbmV3RGVidElkBQAAAANuaWwFAAAAA25pbAQAAAAHJG1hdGNoMAUAAAAGcmVzdWx0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAooSW50LCBJbnQpBAAAAAF0BQAAAAckbWF0Y2gwBQAAAAF0CQAAAgAAAAECAAAAJFJldHVybiB2YWx1ZSBoYXMgdGhlIHdyb25nIGRhdGEgdHlwZQEAAAAQY2FsY0hlYWx0aEZhY3RvcgAAAAIAAAAOYm9ycm93Q2FwYWNpdHkAAAASYm9ycm93Q2FwYWNpdHlVc2VkCQAAawAAAAMJAABlAAAAAgUAAAAOYm9ycm93Q2FwYWNpdHkFAAAAEmJvcnJvd0NhcGFjaXR5VXNlZAAAAAAAAAAD6AUAAAAOYm9ycm93Q2FwYWNpdHkBAAAAE2NhbGNCb3Jyb3dDQm9ycm93Q1UAAAAFAAAABHVzZXIAAAANbmV3RGVidEFtb3VudAAAAAluZXdEZWJ0SWQAAAAQY29sbGF0ZXJhbEFtb3VudAAAAAxjb2xsYXRlcmFsSWQEAAAACHBvb2xMaXN0CQAEtQAAAAIFAAAABXBvb2xzAgAAAAE7BAAAAAhsaXN0U2l6ZQkAAZAAAAABBQAAAAhwb29sTGlzdAoBAAAACWZvbGRQb29scwAAAAIAAAAFYWNjdW0AAAAEbmV4dAQAAAAMaGVhbHRoUGFyYW1zCQEAAAASZ2V0SGVhbHRoUGFyYW1ldGVyAAAABgUAAAAEdXNlcgUAAAAEbmV4dAUAAAANbmV3RGVidEFtb3VudAUAAAAJbmV3RGVidElkBQAAABBjb2xsYXRlcmFsQW1vdW50BQAAAAxjb2xsYXRlcmFsSWQEAAAAByRtYXRjaDAFAAAADGhlYWx0aFBhcmFtcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKKEludCwgSW50KQQAAAABdAUAAAAHJG1hdGNoMAkABRQAAAACCQAAZAAAAAIIBQAAAAVhY2N1bQAAAAJfMQgFAAAADGhlYWx0aFBhcmFtcwAAAAJfMQkAAGQAAAACCAUAAAAFYWNjdW0AAAACXzIIBQAAAAxoZWFsdGhQYXJhbXMAAAACXzEEAAAAAWUFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAEVGVzdAQAAAANJGxpc3QyMzEyMjM0NgUAAAAIcG9vbExpc3QEAAAADSRzaXplMjMxMjIzNDYJAAGQAAAAAQUAAAANJGxpc3QyMzEyMjM0NgQAAAANJGFjYzAyMzEyMjM0NgkABRQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTIzMTIyMzQ2AAAAAAAAAAAABQAAAA0kYWNjMDIzMTIyMzQ2BAAAAA0kYWNjMTIzMTIyMzQ2CQEAAAAJZm9sZFBvb2xzAAAAAgUAAAANJGFjYzAyMzEyMjM0NgkAAZEAAAACBQAAAA0kbGlzdDIzMTIyMzQ2AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTIzMTIyMzQ2AAAAAAAAAAABBQAAAA0kYWNjMTIzMTIyMzQ2BAAAAA0kYWNjMjIzMTIyMzQ2CQEAAAAJZm9sZFBvb2xzAAAAAgUAAAANJGFjYzEyMzEyMjM0NgkAAZEAAAACBQAAAA0kbGlzdDIzMTIyMzQ2AAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTIzMTIyMzQ2AAAAAAAAAAACBQAAAA0kYWNjMjIzMTIyMzQ2BAAAAA0kYWNjMzIzMTIyMzQ2CQEAAAAJZm9sZFBvb2xzAAAAAgUAAAANJGFjYzIyMzEyMjM0NgkAAZEAAAACBQAAAA0kbGlzdDIzMTIyMzQ2AAAAAAAAAAACCQAAAgAAAAECAAAAEkxpc3Qgc2l6ZSBleGNlZWQgMgEAAAAPY2hlY2tVc2VySGVhbHRoAAAABQAAAAR1c2VyAAAADW5ld0RlYnRBbW91bnQAAAAJbmV3RGVidElkAAAAEGNvbGxhdGVyYWxBbW91bnQAAAAMY29sbGF0ZXJhbElkBAAAAAViY0JjdQkBAAAAE2NhbGNCb3Jyb3dDQm9ycm93Q1UAAAAFBQAAAAR1c2VyBQAAAA1uZXdEZWJ0QW1vdW50BQAAAAluZXdEZWJ0SWQFAAAAEGNvbGxhdGVyYWxBbW91bnQFAAAADGNvbGxhdGVyYWxJZAQAAAAKdXNlckhlYWx0aAkBAAAAEGNhbGNIZWFsdGhGYWN0b3IAAAACCAUAAAAFYmNCY3UAAAACXzEIBQAAAAViY0JjdQAAAAJfMgMJAABnAAAAAgUAAAAKdXNlckhlYWx0aAAAAAAAAAAAAAYHAAAACQAAAAFpAQAAAAdyZXBheVRvAAAAAQAAAAtwb29sQWRkcmVzcwMJAQAAAAljaGVja1Bvb2wAAAABBQAAAAtwb29sQWRkcmVzcwQAAAAJcG9vbEFzc2V0CQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwIAAAAHYXNzZXRJZAMJAAAAAAAAAgkAAlkAAAABBQAAAAlwb29sQXNzZXQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQDCQAAZgAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAABHVzZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADbXNnCQAD/AAAAAQJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAVyZXBheQkABEwAAAACBQAAAAR1c2VyBQAAAANuaWwIBQAAAAFpAAAACHBheW1lbnRzAwkAAAAAAAACBQAAAANtc2cFAAAAA21zZwQAAAAHJG1hdGNoMAUAAAADbXNnAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAFAAAAA25pbAkAAAIAAAABAgAAABhJbmNvcnJlY3QgaW52b2tlIHJlc3VsdCEJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAFE5vIHBheW1lbnQgYXR0YWNoZWQhCQAAAgAAAAECAAAAF0Fzc2V0SWRzIGRvZXMgbm90IG1hdGNoCQAAAgAAAAECAAAAF1Bvb2wgYWRkcmVzcyBub3QgZm91bmQhAAAAAWkBAAAACmJvcnJvd0Zyb20AAAADAAAAC3Bvb2xBZGRyZXNzAAAAB2Fzc2V0SWQAAAAGYW1vdW50AwkBAAAACWNoZWNrUG9vbAAAAAEFAAAAC3Bvb2xBZGRyZXNzBAAAAAlwb29sQXNzZXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAdhc3NldElkAwkAAAAAAAACBQAAAAlwb29sQXNzZXQFAAAAB2Fzc2V0SWQDCQEAAAASY2hlY2tQb29sTGlxdWlkaXR5AAAAAgUAAAALcG9vbEFkZHJlc3MFAAAABmFtb3VudAQAAAAEdXNlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAD2NoZWNrVXNlckhlYWx0aAAAAAUFAAAABHVzZXIFAAAABmFtb3VudAUAAAAHYXNzZXRJZAAAAAAAAAAAAAIAAAAABAAAAAt0b2tlbkFtb3VudAkAA/wAAAAECQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwIAAAAGYm9ycm93CQAETAAAAAIFAAAABHVzZXIJAARMAAAAAgUAAAAGYW1vdW50BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAALdG9rZW5BbW91bnQFAAAAC3Rva2VuQW1vdW50BAAAAAckbWF0Y2gwBQAAAAt0b2tlbkFtb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAF0BQAAAAckbWF0Y2gwAwkAAAAAAAACBQAAAAlwb29sQXNzZXQCAAAABVdBVkVTCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAABdAUAAAAEdW5pdAUAAAADbmlsCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAABdAkAAlkAAAABBQAAAAlwb29sQXNzZXQFAAAAA25pbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAF0BQAAAAckbWF0Y2gwBQAAAANuaWwJAAACAAAAAQIAAAAYSW5jb3JyZWN0IGludm9rZSByZXN1bHQhCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAABtCb3Jyb3cgZXhjZWVkcyB1c2VyIGhlYWx0aCEJAAACAAAAAQIAAAAhUG9vbCBsaXF1aWRpdHkgaXMgbm90IHN1ZmZpY2llbnQhCQAAAgAAAAECAAAAF0Fzc2V0SWRzIGRvZXMgbm90IG1hdGNoCQAAAgAAAAECAAAAF1Bvb2wgYWRkcmVzcyBub3QgZm91bmQhAAAAAWkBAAAABXNldHVwAAAAAgAAAA1jb25maWdBZGRyZXNzAAAABXBvb2xzAwMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwIAAAAGY29uZmlnCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMCAAAABXBvb2xzBwkABEwAAAACCQEAAAALd3JpdGVTdHJpbmcAAAACAgAAAAZjb25maWcFAAAADWNvbmZpZ0FkZHJlc3MJAARMAAAAAgkBAAAAC3dyaXRlU3RyaW5nAAAAAgIAAAAFcG9vbHMJAAS5AAAAAgUAAAAFcG9vbHMCAAAAATsFAAAAA25pbAkAAAIAAAABAgAAACpBZG1pbiBhbmQgY29uZmlnIGFkZHJlc3MgYWxyZWFkeSBkZWZpbmllZCEAAAABaQEAAAAHYWRkUG9vbAAAAAEAAAALcG9vbEFkZHJlc3MDCQEAAAAHaXNBZG1pbgAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAIcG9vbExpc3QJAAS1AAAAAgUAAAAFcG9vbHMCAAAAATsDCQAAAAAAAAIJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAhwb29sTGlzdAUAAAALcG9vbEFkZHJlc3MHBAAAAAhuZXdQb29scwkABE0AAAACBQAAAAhwb29sTGlzdAUAAAALcG9vbEFkZHJlc3MJAARMAAAAAgkBAAAAC3dyaXRlU3RyaW5nAAAAAgIAAAAFcG9vbHMJAAS5AAAAAgUAAAAIbmV3UG9vbHMCAAAAATsFAAAAA25pbAkAAAIAAAABAgAAABRQb29sIGFscmVhZHkgZXhpc3RzIQkAAAIAAAABAgAAACpBZGRyZXNzIGRvZXMgbm90IG1hdGNoIHdpdGggYWRtaW4gYWRkcmVzcyEAAAABaQEAAAAMdXBkYXRlQ29uZmlnAAAAAQAAAA1jb25maWdBZGRyZXNzAwkBAAAAB2lzQWRtaW4AAAABCAUAAAABaQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC3dyaXRlU3RyaW5nAAAAAgIAAAAGY29uZmlnBQAAAA1jb25maWdBZGRyZXNzBQAAAANuaWwJAAACAAAAAQIAAAAqQWRkcmVzcyBkb2VzIG5vdCBtYXRjaCB3aXRoIGFkbWluIGFkZHJlc3MhAAAAAWkBAAAACWRlcG9zaXRBdAAAAAIAAAALcG9vbEFkZHJlc3MAAAAMaXNDb2xsYXRlcmFsAwkBAAAACWNoZWNrUG9vbAAAAAEFAAAAC3Bvb2xBZGRyZXNzAwkAAGYAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAR1c2VyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAC3Rva2VuQW1vdW50CQAD/AAAAAQJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAdkZXBvc2l0CQAETAAAAAIFAAAABHVzZXIJAARMAAAAAgUAAAAMaXNDb2xsYXRlcmFsBQAAAANuaWwIBQAAAAFpAAAACHBheW1lbnRzAwkAAAAAAAACBQAAAAt0b2tlbkFtb3VudAUAAAALdG9rZW5BbW91bnQEAAAAB3Rva2VuSWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAhkVG9rZW5JZAQAAAAHJG1hdGNoMAUAAAALdG9rZW5BbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABdAUAAAAHJG1hdGNoMAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAAXQJAAJZAAAAAQUAAAAHdG9rZW5JZAUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAFAAAAA25pbAkAAAIAAAABAgAAABhJbmNvcnJlY3QgaW52b2tlIHJlc3VsdCEJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAFE5vIHBheW1lbnQgYXR0YWNoZWQhCQAAAgAAAAECAAAAF1Bvb2wgYWRkcmVzcyBub3QgZm91bmQhAAAAAWkBAAAADHdpdGhkcmF3RnJvbQAAAAEAAAALcG9vbEFkZHJlc3MDCQEAAAAJY2hlY2tQb29sAAAAAQUAAAALcG9vbEFkZHJlc3MEAAAACGRUb2tlbklkCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwIAAAAIZFRva2VuSWQDCQAAAAAAAAIJAAJZAAAAAQUAAAAIZFRva2VuSWQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQDCQAAZgAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAABHVzZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAALdG9rZW5BbW91bnQJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAACHdpdGhkcmF3CQAETAAAAAIFAAAABHVzZXIFAAAAA25pbAgFAAAAAWkAAAAIcGF5bWVudHMDCQAAAAAAAAIFAAAAC3Rva2VuQW1vdW50BQAAAAt0b2tlbkFtb3VudAQAAAAHdG9rZW5JZAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAC3Rva2VuQW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAXQFAAAAByRtYXRjaDADCQAAAAAAAAIFAAAAB3Rva2VuSWQCAAAABVdBVkVTCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAABdAUAAAAEdW5pdAUAAAADbmlsCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAABdAkAAlkAAAABBQAAAAd0b2tlbklkBQAAAANuaWwDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABdAUAAAAHJG1hdGNoMAUAAAADbmlsCQAAAgAAAAECAAAAGEluY29ycmVjdCBpbnZva2UgcmVzdWx0IQkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAUTm8gcGF5bWVudCBhdHRhY2hlZCEJAAACAAAAAQIAAAAXQXNzZXRJZHMgZG9lcyBub3QgbWF0Y2gJAAACAAAAAQIAAAAXUG9vbCBhZGRyZXNzIG5vdCBmb3VuZCEAAAABaQEAAAASbG9ja0FzQ29sbGF0ZXJhbEF0AAAAAQAAAAtwb29sQWRkcmVzcwMJAQAAAAljaGVja1Bvb2wAAAABBQAAAAtwb29sQWRkcmVzcwQAAAAIZFRva2VuSWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3Bvb2xBZGRyZXNzAgAAAAhkVG9rZW5JZAMJAAAAAAAAAgkAAlkAAAABBQAAAAhkVG9rZW5JZAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAMJAABmAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAEdXNlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANtc2cJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAAEGxvY2tBc0NvbGxhdGVyYWwJAARMAAAAAgUAAAAEdXNlcgUAAAADbmlsCAUAAAABaQAAAAhwYXltZW50cwMJAAAAAAAAAgUAAAADbXNnBQAAAANtc2cEAAAAByRtYXRjaDAFAAAAA21zZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAF0BQAAAAckbWF0Y2gwBQAAAANuaWwJAAACAAAAAQIAAAAYSW5jb3JyZWN0IGludm9rZSByZXN1bHQhCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAABRObyBwYXltZW50IGF0dGFjaGVkIQkAAAIAAAABAgAAABdBc3NldElkcyBkb2VzIG5vdCBtYXRjaAkAAAIAAAABAgAAABdQb29sIGFkZHJlc3Mgbm90IGZvdW5kIQAAAAFpAQAAAApkZWxldGVEYXRhAAAAAQAAAARuYW1lCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAABG5hbWUFAAAAA25pbAAAAAAx52F2", "height": 1690041, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FiGwZg5tEJAyQc7f5pKaVSUUqPGLwSFFHLshGDA59anM Next: 3j4sC8PjvcAqGKV9Znf6DEYrnNUiqTKC1sHnkfizoPcN Diff:
OldNewDifferences
4141 let A = z
4242 A
4343 }
44- else throw("Error")
44+ else throw("Return value has the wrong data type")
4545 }
4646
4747
9797
9898
9999 @Callable(V)
100-func borrowFrom (n,W,o) = if (f(n))
100+func repayTo (n) = if (f(n))
101101 then {
102- let X = getStringValue(addressFromStringValue(n), "assetId")
103- if ((X == W))
102+ let W = getStringValue(addressFromStringValue(n), "assetId")
103+ if ((fromBase58String(W) == V.payments[0].assetId))
104+ then if ((size(V.payments) > 0))
105+ then {
106+ let t = toBase58String(V.caller.bytes)
107+ let X = invoke(addressFromStringValue(n), "repay", [t], V.payments)
108+ if ((X == X))
109+ then {
110+ let z = X
111+ if ($isInstanceOf(z, "String"))
112+ then {
113+ let A = z
114+ nil
115+ }
116+ else throw("Incorrect invoke result!")
117+ }
118+ else throw("Strict value is not equal to itself.")
119+ }
120+ else throw("No payment attached!")
121+ else throw("AssetIds does not match")
122+ }
123+ else throw("Pool address not found!")
124+
125+
126+
127+@Callable(V)
128+func borrowFrom (n,Y,o) = if (f(n))
129+ then {
130+ let W = getStringValue(addressFromStringValue(n), "assetId")
131+ if ((W == Y))
104132 then if (m(n, o))
105133 then {
106134 let t = toBase58String(V.caller.bytes)
107- if (S(t, o, W, 0, ""))
135+ if (S(t, o, Y, 0, ""))
108136 then {
109- let Y = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
110- if ((Y == Y))
137+ let Z = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
138+ if ((Z == Z))
111139 then {
112- let z = Y
140+ let z = Z
113141 if ($isInstanceOf(z, "Int"))
114142 then {
115143 let A = z
116- if ((X == "WAVES"))
144+ if ((W == "WAVES"))
117145 then [ScriptTransfer(V.caller, A, unit)]
118- else [ScriptTransfer(V.caller, A, fromBase58String(X))]
146+ else [ScriptTransfer(V.caller, A, fromBase58String(W))]
119147 }
120148 else if ($isInstanceOf(z, "String"))
121149 then {
136164
137165
138166 @Callable(V)
139-func setup (Z,c) = if (if (!(isDefined(getString(this, "config"))))
167+func setup (aa,c) = if (if (!(isDefined(getString(this, "config"))))
140168 then !(isDefined(getString(this, "pools")))
141169 else false)
142- then [h("config", Z), h("pools", makeString(c, ";"))]
170+ then [h("config", aa), h("pools", makeString(c, ";"))]
143171 else throw("Admin and config address already definied!")
144172
145173
150178 let F = split(c, ";")
151179 if ((containsElement(F, n) == false))
152180 then {
153- let aa = (F :+ n)
154-[h("pools", makeString(aa, ";"))]
181+ let ab = (F :+ n)
182+[h("pools", makeString(ab, ";"))]
155183 }
156184 else throw("Pool already exists!")
157185 }
160188
161189
162190 @Callable(V)
163-func updateConfig (Z) = if (d(V.caller))
164- then [h("config", Z)]
191+func updateConfig (aa) = if (d(V.caller))
192+ then [h("config", aa)]
165193 else throw("Address does not match with admin address!")
166194
167195
168196
169197 @Callable(V)
170-func depositAt (n,ab) = if (f(n))
198+func depositAt (n,ac) = if (f(n))
171199 then if ((size(V.payments) > 0))
172200 then {
173201 let t = toBase58String(V.caller.bytes)
174- let Y = invoke(addressFromStringValue(n), "deposit", [t, ab], V.payments)
175- if ((Y == Y))
202+ let Z = invoke(addressFromStringValue(n), "deposit", [t, ac], V.payments)
203+ if ((Z == Z))
176204 then {
177- let ac = getStringValue(addressFromStringValue(n), "dTokenId")
178- let z = Y
205+ let ad = getStringValue(addressFromStringValue(n), "dTokenId")
206+ let z = Z
179207 if ($isInstanceOf(z, "Int"))
180208 then {
181209 let A = z
182-[ScriptTransfer(V.caller, A, fromBase58String(ac))]
210+[ScriptTransfer(V.caller, A, fromBase58String(ad))]
183211 }
184212 else if ($isInstanceOf(z, "String"))
185213 then {
198226 @Callable(V)
199227 func withdrawFrom (n) = if (f(n))
200228 then {
201- let ad = getStringValue(addressFromStringValue(n), "dTokenId")
202- if ((fromBase58String(ad) == V.payments[0].assetId))
229+ let ae = getStringValue(addressFromStringValue(n), "dTokenId")
230+ if ((fromBase58String(ae) == V.payments[0].assetId))
203231 then if ((size(V.payments) > 0))
204232 then {
205233 let t = toBase58String(V.caller.bytes)
206- let Y = invoke(addressFromStringValue(n), "withdraw", [t], V.payments)
207- if ((Y == Y))
234+ let Z = invoke(addressFromStringValue(n), "withdraw", [t], V.payments)
235+ if ((Z == Z))
208236 then {
209- let ac = getStringValue(addressFromStringValue(n), "assetId")
210- let z = Y
237+ let ad = getStringValue(addressFromStringValue(n), "assetId")
238+ let z = Z
211239 if ($isInstanceOf(z, "Int"))
212240 then {
213241 let A = z
214- if ((ac == "WAVES"))
242+ if ((ad == "WAVES"))
215243 then [ScriptTransfer(V.caller, A, unit)]
216- else [ScriptTransfer(V.caller, A, fromBase58String(ac))]
244+ else [ScriptTransfer(V.caller, A, fromBase58String(ad))]
217245 }
218246 else if ($isInstanceOf(z, "String"))
219247 then {
234262 @Callable(V)
235263 func lockAsCollateralAt (n) = if (f(n))
236264 then {
237- let ad = getStringValue(addressFromStringValue(n), "dTokenId")
238- if ((fromBase58String(ad) == V.payments[0].assetId))
265+ let ae = getStringValue(addressFromStringValue(n), "dTokenId")
266+ if ((fromBase58String(ae) == V.payments[0].assetId))
239267 then if ((size(V.payments) > 0))
240268 then {
241269 let t = toBase58String(V.caller.bytes)
242- let ae = invoke(addressFromStringValue(n), "lockAsCollateral", [t], V.payments)
243- if ((ae == ae))
270+ let X = invoke(addressFromStringValue(n), "lockAsCollateral", [t], V.payments)
271+ if ((X == X))
244272 then {
245- let z = ae
273+ let z = X
246274 if ($isInstanceOf(z, "String"))
247275 then {
248276 let A = z
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = valueOrElse(getStringValue(this, "config"), "")
55
66 let b = valueOrElse(getStringValue(addressFromStringValue(a), "admin"), "")
77
88 let c = valueOrElse(getStringValue(this, "pools"), "")
99
1010 func d (e) = if ((e == addressFromStringValue(b)))
1111 then true
1212 else false
1313
1414
1515 func f (g) = if (contains(c, g))
1616 then true
1717 else false
1818
1919
2020 func h (i,j) = StringEntry(i, j)
2121
2222
2323 func k (i,l) = IntegerEntry(i, l)
2424
2525
2626 func m (n,o) = {
2727 let p = getIntegerValue(addressFromStringValue(n), "totalSupply")
2828 let q = getIntegerValue(addressFromStringValue(n), "totalBorrow")
2929 let r = (p - q)
3030 if ((r >= o))
3131 then true
3232 else false
3333 }
3434
3535
3636 func s (t,n,u,v,w,x) = {
3737 let y = invoke(addressFromStringValue(n), "getUserHealthParameter", [t, w, x, u, v], nil)
3838 let z = y
3939 if ($isInstanceOf(z, "(Int, Int)"))
4040 then {
4141 let A = z
4242 A
4343 }
44- else throw("Error")
44+ else throw("Return value has the wrong data type")
4545 }
4646
4747
4848 func B (C,D) = fraction((C - D), 1000, C)
4949
5050
5151 func E (t,u,v,w,x) = {
5252 let F = split(c, ";")
5353 let G = size(F)
5454 func H (I,J) = {
5555 let K = s(t, J, u, v, w, x)
5656 let z = K
5757 if ($isInstanceOf(z, "(Int, Int)"))
5858 then {
5959 let A = z
6060 $Tuple2((I._1 + K._1), (I._2 + K._1))
6161 }
6262 else {
6363 let L = z
6464 throw("Test")
6565 }
6666 }
6767
6868 let M = F
6969 let N = size(M)
7070 let O = $Tuple2(0, 0)
7171 if ((N == 0))
7272 then O
7373 else {
7474 let P = H(O, M[0])
7575 if ((N == 1))
7676 then P
7777 else {
7878 let Q = H(P, M[1])
7979 if ((N == 2))
8080 then Q
8181 else {
8282 let R = H(Q, M[2])
8383 throw("List size exceed 2")
8484 }
8585 }
8686 }
8787 }
8888
8989
9090 func S (t,u,v,w,x) = {
9191 let T = E(t, u, v, w, x)
9292 let U = B(T._1, T._2)
9393 if ((U >= 0))
9494 then true
9595 else false
9696 }
9797
9898
9999 @Callable(V)
100-func borrowFrom (n,W,o) = if (f(n))
100+func repayTo (n) = if (f(n))
101101 then {
102- let X = getStringValue(addressFromStringValue(n), "assetId")
103- if ((X == W))
102+ let W = getStringValue(addressFromStringValue(n), "assetId")
103+ if ((fromBase58String(W) == V.payments[0].assetId))
104+ then if ((size(V.payments) > 0))
105+ then {
106+ let t = toBase58String(V.caller.bytes)
107+ let X = invoke(addressFromStringValue(n), "repay", [t], V.payments)
108+ if ((X == X))
109+ then {
110+ let z = X
111+ if ($isInstanceOf(z, "String"))
112+ then {
113+ let A = z
114+ nil
115+ }
116+ else throw("Incorrect invoke result!")
117+ }
118+ else throw("Strict value is not equal to itself.")
119+ }
120+ else throw("No payment attached!")
121+ else throw("AssetIds does not match")
122+ }
123+ else throw("Pool address not found!")
124+
125+
126+
127+@Callable(V)
128+func borrowFrom (n,Y,o) = if (f(n))
129+ then {
130+ let W = getStringValue(addressFromStringValue(n), "assetId")
131+ if ((W == Y))
104132 then if (m(n, o))
105133 then {
106134 let t = toBase58String(V.caller.bytes)
107- if (S(t, o, W, 0, ""))
135+ if (S(t, o, Y, 0, ""))
108136 then {
109- let Y = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
110- if ((Y == Y))
137+ let Z = invoke(addressFromStringValue(n), "borrow", [t, o], nil)
138+ if ((Z == Z))
111139 then {
112- let z = Y
140+ let z = Z
113141 if ($isInstanceOf(z, "Int"))
114142 then {
115143 let A = z
116- if ((X == "WAVES"))
144+ if ((W == "WAVES"))
117145 then [ScriptTransfer(V.caller, A, unit)]
118- else [ScriptTransfer(V.caller, A, fromBase58String(X))]
146+ else [ScriptTransfer(V.caller, A, fromBase58String(W))]
119147 }
120148 else if ($isInstanceOf(z, "String"))
121149 then {
122150 let A = z
123151 nil
124152 }
125153 else throw("Incorrect invoke result!")
126154 }
127155 else throw("Strict value is not equal to itself.")
128156 }
129157 else throw("Borrow exceeds user health!")
130158 }
131159 else throw("Pool liquidity is not sufficient!")
132160 else throw("AssetIds does not match")
133161 }
134162 else throw("Pool address not found!")
135163
136164
137165
138166 @Callable(V)
139-func setup (Z,c) = if (if (!(isDefined(getString(this, "config"))))
167+func setup (aa,c) = if (if (!(isDefined(getString(this, "config"))))
140168 then !(isDefined(getString(this, "pools")))
141169 else false)
142- then [h("config", Z), h("pools", makeString(c, ";"))]
170+ then [h("config", aa), h("pools", makeString(c, ";"))]
143171 else throw("Admin and config address already definied!")
144172
145173
146174
147175 @Callable(V)
148176 func addPool (n) = if (d(V.caller))
149177 then {
150178 let F = split(c, ";")
151179 if ((containsElement(F, n) == false))
152180 then {
153- let aa = (F :+ n)
154-[h("pools", makeString(aa, ";"))]
181+ let ab = (F :+ n)
182+[h("pools", makeString(ab, ";"))]
155183 }
156184 else throw("Pool already exists!")
157185 }
158186 else throw("Address does not match with admin address!")
159187
160188
161189
162190 @Callable(V)
163-func updateConfig (Z) = if (d(V.caller))
164- then [h("config", Z)]
191+func updateConfig (aa) = if (d(V.caller))
192+ then [h("config", aa)]
165193 else throw("Address does not match with admin address!")
166194
167195
168196
169197 @Callable(V)
170-func depositAt (n,ab) = if (f(n))
198+func depositAt (n,ac) = if (f(n))
171199 then if ((size(V.payments) > 0))
172200 then {
173201 let t = toBase58String(V.caller.bytes)
174- let Y = invoke(addressFromStringValue(n), "deposit", [t, ab], V.payments)
175- if ((Y == Y))
202+ let Z = invoke(addressFromStringValue(n), "deposit", [t, ac], V.payments)
203+ if ((Z == Z))
176204 then {
177- let ac = getStringValue(addressFromStringValue(n), "dTokenId")
178- let z = Y
205+ let ad = getStringValue(addressFromStringValue(n), "dTokenId")
206+ let z = Z
179207 if ($isInstanceOf(z, "Int"))
180208 then {
181209 let A = z
182-[ScriptTransfer(V.caller, A, fromBase58String(ac))]
210+[ScriptTransfer(V.caller, A, fromBase58String(ad))]
183211 }
184212 else if ($isInstanceOf(z, "String"))
185213 then {
186214 let A = z
187215 nil
188216 }
189217 else throw("Incorrect invoke result!")
190218 }
191219 else throw("Strict value is not equal to itself.")
192220 }
193221 else throw("No payment attached!")
194222 else throw("Pool address not found!")
195223
196224
197225
198226 @Callable(V)
199227 func withdrawFrom (n) = if (f(n))
200228 then {
201- let ad = getStringValue(addressFromStringValue(n), "dTokenId")
202- if ((fromBase58String(ad) == V.payments[0].assetId))
229+ let ae = getStringValue(addressFromStringValue(n), "dTokenId")
230+ if ((fromBase58String(ae) == V.payments[0].assetId))
203231 then if ((size(V.payments) > 0))
204232 then {
205233 let t = toBase58String(V.caller.bytes)
206- let Y = invoke(addressFromStringValue(n), "withdraw", [t], V.payments)
207- if ((Y == Y))
234+ let Z = invoke(addressFromStringValue(n), "withdraw", [t], V.payments)
235+ if ((Z == Z))
208236 then {
209- let ac = getStringValue(addressFromStringValue(n), "assetId")
210- let z = Y
237+ let ad = getStringValue(addressFromStringValue(n), "assetId")
238+ let z = Z
211239 if ($isInstanceOf(z, "Int"))
212240 then {
213241 let A = z
214- if ((ac == "WAVES"))
242+ if ((ad == "WAVES"))
215243 then [ScriptTransfer(V.caller, A, unit)]
216- else [ScriptTransfer(V.caller, A, fromBase58String(ac))]
244+ else [ScriptTransfer(V.caller, A, fromBase58String(ad))]
217245 }
218246 else if ($isInstanceOf(z, "String"))
219247 then {
220248 let A = z
221249 nil
222250 }
223251 else throw("Incorrect invoke result!")
224252 }
225253 else throw("Strict value is not equal to itself.")
226254 }
227255 else throw("No payment attached!")
228256 else throw("AssetIds does not match")
229257 }
230258 else throw("Pool address not found!")
231259
232260
233261
234262 @Callable(V)
235263 func lockAsCollateralAt (n) = if (f(n))
236264 then {
237- let ad = getStringValue(addressFromStringValue(n), "dTokenId")
238- if ((fromBase58String(ad) == V.payments[0].assetId))
265+ let ae = getStringValue(addressFromStringValue(n), "dTokenId")
266+ if ((fromBase58String(ae) == V.payments[0].assetId))
239267 then if ((size(V.payments) > 0))
240268 then {
241269 let t = toBase58String(V.caller.bytes)
242- let ae = invoke(addressFromStringValue(n), "lockAsCollateral", [t], V.payments)
243- if ((ae == ae))
270+ let X = invoke(addressFromStringValue(n), "lockAsCollateral", [t], V.payments)
271+ if ((X == X))
244272 then {
245- let z = ae
273+ let z = X
246274 if ($isInstanceOf(z, "String"))
247275 then {
248276 let A = z
249277 nil
250278 }
251279 else throw("Incorrect invoke result!")
252280 }
253281 else throw("Strict value is not equal to itself.")
254282 }
255283 else throw("No payment attached!")
256284 else throw("AssetIds does not match")
257285 }
258286 else throw("Pool address not found!")
259287
260288
261289
262290 @Callable(V)
263291 func deleteData (af) = [DeleteEntry(af)]
264292
265293

github/deemru/w8io/169f3d6 
77.75 ms