tx · 6Mvc1bvtkyYby28hHrUgpZQKgVzAcszsC3bAfRREZykx

3PFXiZ9CWuhyzHZCvwZVW7cDoV8iU5FetEs:  -0.01400000 Waves

2020.10.27 22:37 [2303208] smart account 3PFXiZ9CWuhyzHZCvwZVW7cDoV8iU5FetEs > SELF 0.00000000 Waves

{ "type": 13, "id": "6Mvc1bvtkyYby28hHrUgpZQKgVzAcszsC3bAfRREZykx", "fee": 1400000, "feeAssetId": null, "timestamp": 1603827482938, "version": 1, "sender": "3PFXiZ9CWuhyzHZCvwZVW7cDoV8iU5FetEs", "senderPublicKey": "C3vMBLUShKwZqweish5EB5MYEwgmbYyHh2RdCiwLXPCT", "proofs": [ "4wHgQZjn2atyNm7ybRwMeEU1djds7LohfVQbYSNnY8oxuxucF8sfL3WhCf1DQcoJfZvnWyE1PFPGMdVgTLq2R87R" ], "script": "base64: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AgAAAAZzdGF0dXMJAAACAAAAAQIAAAAOYWxyZWFkeSBhY3RpdmUEAAAADnNoYXJlVG9rZW5OYW1lCQABLAAAAAICAAAAB1NoYXJlVF8JAQAAAAl0YWtlUmlnaHQAAAACCQAEJQAAAAEFAAAABHRoaXMAAAAAAAAAAAUEAAAAEmRpZ2l0c0luU2hhcmVUb2tlbgkAAGkAAAACCQAAZAAAAAIFAAAAC2RpZ2l0VG9rZW5BBQAAAAtkaWdpdFRva2VuQgAAAAAAAAAAAgQAAAAXc2hhcmVUb2tlbkluaXRpYWxBbW91bnQJAABrAAAAAwkAAGwAAAAGBQAAABN0b2tlblJlY2VpdmVBbW91bnRBBQAAAAtkaWdpdFRva2VuQQAAAAAAAAAABQAAAAAAAAAAAQUAAAALZGlnaXRUb2tlbkEFAAAACEhBTEZET1dOCQAAbAAAAAYFAAAAE3Rva2VuUmVjZWl2ZUFtb3VudEIFAAAAC2RpZ2l0VG9rZW5CAAAAAAAAAAAFAAAAAAAAAAABBQAAAAtkaWdpdFRva2VuQgUAAAAISEFMRkRPV04JAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAUAAAASZGlnaXRzSW5TaGFyZVRva2VuAAAAAAAAAAAAAAAAAAAAAAAABQAAAAhIQUxGRE9XTgQAAAARc2hhcmVUb2tlbkFzc2V0SWQJAAQ4AAAAAQkABEIAAAAFBQAAAA5zaGFyZVRva2VuTmFtZQUAAAAOc2hhcmVUb2tlbk5hbWUFAAAAF3NoYXJlVG9rZW5Jbml0aWFsQW1vdW50BQAAABJkaWdpdHNJblNoYXJlVG9rZW4GBAAAABNhc3NldElkVG9rZW5TdHJpbmdBBAAAAAckbWF0Y2gwBQAAABBhc3NldElkUmVjZWl2ZWRBAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAF0BQAAAAckbWF0Y2gwAgAAAAVXQVZFUwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABdAUAAAAHJG1hdGNoMAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAABBhc3NldElkUmVjZWl2ZWRBCQAAAgAAAAECAAAAC01hdGNoIGVycm9yBAAAABNhc3NldElkVG9rZW5TdHJpbmdCBAAAAAckbWF0Y2gwBQAAABBhc3NldElkUmVjZWl2ZWRCAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAF0BQAAAAckbWF0Y2gwAgAAAAVXQVZFUwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABdAUAAAAHJG1hdGNoMAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAABBhc3NldElkUmVjZWl2ZWRCCQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxhbW91bnRUb2tlbkEFAAAAE3Rva2VuUmVjZWl2ZUFtb3VudEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGFtb3VudFRva2VuQgUAAAATdG9rZW5SZWNlaXZlQW1vdW50QgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAA1hc3NldElkVG9rZW5BBQAAABNhc3NldElkVG9rZW5TdHJpbmdBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAADWFzc2V0SWRUb2tlbkIFAAAAE2Fzc2V0SWRUb2tlblN0cmluZ0IJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAICAAAABnN0YXR1cwYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAACWNvbWlzc2lvbgUAAAAJY29taXNzaW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABdjb21pc3Npb25TY2FsZURlbGltaXRlcgUAAAAXY29taXNzaW9uU2NhbGVEZWxpbWl0ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHdmVyc2lvbgUAAAAHdmVyc2lvbgkABEwAAAACCQAEQgAAAAUFAAAADnNoYXJlVG9rZW5OYW1lBQAAAA5zaGFyZVRva2VuTmFtZQUAAAAXc2hhcmVUb2tlbkluaXRpYWxBbW91bnQFAAAAEmRpZ2l0c0luU2hhcmVUb2tlbgYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBQAAABdzaGFyZVRva2VuSW5pdGlhbEFtb3VudAUAAAARc2hhcmVUb2tlbkFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAOc2hhcmVfdG9rZW5faWQJAAJYAAAAAQUAAAARc2hhcmVUb2tlbkFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEnNoYXJlX3Rva2VuX3N1cHBseQUAAAAXc2hhcmVUb2tlbkluaXRpYWxBbW91bnQFAAAAA25pbAAAAApjb250ZXh0T2JqAQAAABlyZXBsZW5pc2htZW50V2l0aFR3b1Rva2VuAAAAAAQAAAAIcGF5bWVudEEJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAACmNvbnRleHRPYmoAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACHBheW1lbnRCCQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAApjb250ZXh0T2JqAAAACHBheW1lbnRzAAAAAAAAAAABBAAAABBhc3NldElkUmVjZWl2ZWRBCAUAAAAIcGF5bWVudEEAAAAHYXNzZXRJZAQAAAATdG9rZW5SZWNlaXZlQW1vdW50QQgFAAAACHBheW1lbnRBAAAABmFtb3VudAQAAAAQYXNzZXRJZFJlY2VpdmVkQggFAAAACHBheW1lbnRCAAAAB2Fzc2V0SWQEAAAAE3Rva2VuUmVjZWl2ZUFtb3VudEIIBQAAAAhwYXltZW50QgAAAAZhbW91bnQEAAAAEWRBcHBUb2tlbnNBbW91bnRBCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAAAxhbW91bnRUb2tlbkEEAAAAEWRBcHBUb2tlbnNBbW91bnRCCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzAgAAAAxhbW91bnRUb2tlbkIDAwkBAAAAAiE9AAAAAgUAAAAQYXNzZXRJZFJlY2VpdmVkQQUAAAANYXNzZXRJZFRva2VuQQYJAQAAAAIhPQAAAAIFAAAAEGFzc2V0SWRSZWNlaXZlZEIFAAAADWFzc2V0SWRUb2tlbkIJAAACAAAAAQIAAAAQaW5jb3JyZWN0IGFzc2V0cwQAAAAKdG9rZW5SYXRpbwkAAGkAAAACCQAAawAAAAMFAAAAEWRBcHBUb2tlbnNBbW91bnRBCQAAaAAAAAIAAAAA6NSlEAAFAAAAC3NjYWxlVmFsdWUzBQAAABN0b2tlblJlY2VpdmVBbW91bnRBCQAAawAAAAMFAAAAEWRBcHBUb2tlbnNBbW91bnRCAAAAAOjUpRAABQAAABN0b2tlblJlY2VpdmVBbW91bnRCAwkBAAAAASEAAAABCQAAAAAAAAIFAAAACnRva2VuUmF0aW8FAAAAC3NjYWxlVmFsdWUzCQAAAgAAAAECAAAAPWluY29ycmVjdCBhc3NldHMgYW1vdW50OiBhbW91bnRzIG11c3QgaGF2ZSB0aGUgY29udHJhY3QgcmF0aW8EAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkAAGsAAAADBQAAABN0b2tlblJlY2VpdmVBbW91bnRBBQAAABB0b2tlblNoYXJlU3VwcGx5BQAAABFkQXBwVG9rZW5zQW1vdW50QQMJAAAAAAAAAgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAKXlvdSB0cnkgcmVwbGFuc2lzaCB3aXRoIHZlcnkgc21hbGwgYW1vdW50CQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAARYXNzZXRJZFRva2VuU2hhcmUFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQFAAAAEWFzc2V0SWRUb2tlblNoYXJlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJzaGFyZV90b2tlbl9zdXBwbHkJAABkAAAAAgUAAAAQdG9rZW5TaGFyZVN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxhbW91bnRUb2tlbkEJAABkAAAAAgUAAAARZEFwcFRva2Vuc0Ftb3VudEEFAAAAE3Rva2VuUmVjZWl2ZUFtb3VudEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGFtb3VudFRva2VuQgkAAGQAAAACBQAAABFkQXBwVG9rZW5zQW1vdW50QgUAAAATdG9rZW5SZWNlaXZlQW1vdW50QgUAAAADbmlsAAAACmNvbnRleHRPYmoBAAAAGXJlcGxhbmlzaG1lbnRXaXRoT25lVG9rZW4AAAAABAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAApjb250ZXh0T2JqAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAA9hc3NldElkUmVjZWl2ZWQIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAAEnRva2VuUmVjZWl2ZUFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50AwkAAAAAAAACBQAAAA9hc3NldElkUmVjZWl2ZWQFAAAADWFzc2V0SWRUb2tlbkEEAAAAD25ld0Ftb3VudFRva2VuQQkAAGQAAAACBQAAAAxhbW91bnRUb2tlbkEFAAAAEnRva2VuUmVjZWl2ZUFtb3VudAQAAAAUcHJpY2VBdG9Cd2l0aDhkaWdpdHMJAABrAAAAAwUAAAAPbmV3QW1vdW50VG9rZW5BBQAAAAtzY2FsZVZhbHVlOAUAAAAMYW1vdW50VG9rZW5CBAAAACB0b2tlbkFtb3VudEJOZXdQcmljZU9sZEludmFyaWFudAkAAGwAAAAGCQAAawAAAAMFAAAADGFtb3VudFRva2VuQQUAAAAMYW1vdW50VG9rZW5CBQAAABRwcmljZUF0b0J3aXRoOGRpZ2l0cwAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAQAAAAAAAAAAAAUAAAAISEFMRkRPV04EAAAAE25ld1Rva2VuU2hhcmVTdXBwbHkJAABrAAAAAwUAAAAMYW1vdW50VG9rZW5CBQAAABB0b2tlblNoYXJlU3VwcGx5BQAAACB0b2tlbkFtb3VudEJOZXdQcmljZU9sZEludmFyaWFudAQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAZQAAAAIFAAAAE25ld1Rva2VuU2hhcmVTdXBwbHkFAAAAEHRva2VuU2hhcmVTdXBwbHkJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAABFhc3NldElkVG9rZW5TaGFyZQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAAKY29udGV4dE9iagAAAAZjYWxsZXIFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAUAAAARYXNzZXRJZFRva2VuU2hhcmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEnNoYXJlX3Rva2VuX3N1cHBseQkAAGQAAAACBQAAABB0b2tlblNoYXJlU3VwcGx5BQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGFtb3VudFRva2VuQQUAAAAPbmV3QW1vdW50VG9rZW5BBQAAAANuaWwDCQAAAAAAAAIFAAAAD2Fzc2V0SWRSZWNlaXZlZAUAAAANYXNzZXRJZFRva2VuQgQAAAAPbmV3QW1vdW50VG9rZW5CCQAAZAAAAAIFAAAADGFtb3VudFRva2VuQgUAAAASdG9rZW5SZWNlaXZlQW1vdW50BAAAABRwcmljZUF0b0J3aXRoOGRpZ2l0cwkAAGsAAAADBQAAAAxhbW91bnRUb2tlbkEFAAAAC3NjYWxlVmFsdWU4BQAAAA9uZXdBbW91bnRUb2tlbkIEAAAAIHRva2VuQW1vdW50Qk5ld1ByaWNlT2xkSW52YXJpYW50CQAAbAAAAAYJAABrAAAAAwUAAAAMYW1vdW50VG9rZW5BBQAAAAxhbW91bnRUb2tlbkIFAAAAFHByaWNlQXRvQndpdGg4ZGlnaXRzAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAABAAAAAAAAAAAABQAAAAhIQUxGRE9XTgQAAAATbmV3VG9rZW5TaGFyZVN1cHBseQkAAGsAAAADBQAAAAxhbW91bnRUb2tlbkIFAAAAEHRva2VuU2hhcmVTdXBwbHkFAAAAIHRva2VuQW1vdW50Qk5ld1ByaWNlT2xkSW52YXJpYW50BAAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAABlAAAAAgUAAAATbmV3VG9rZW5TaGFyZVN1cHBseQUAAAAQdG9rZW5TaGFyZVN1cHBseQkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAAEWFzc2V0SWRUb2tlblNoYXJlBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BQAAABFhc3NldElkVG9rZW5TaGFyZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASc2hhcmVfdG9rZW5fc3VwcGx5CQAAZAAAAAIFAAAAEHRva2VuU2hhcmVTdXBwbHkFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMYW1vdW50VG9rZW5CBQAAAA9uZXdBbW91bnRUb2tlbkIFAAAAA25pbAkAAAIAAAABAgAAABtpbmNvcnJlY3QgYXNzZXRzIGluIHBheW1lbnQAAAAKY29udGV4dE9iagEAAAAId2l0aGRyYXcAAAAABAAAABFkQXBwVG9rZW5zQW1vdW50QQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAMYW1vdW50VG9rZW5BBAAAABFkQXBwVG9rZW5zQW1vdW50QgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwIAAAAMYW1vdW50VG9rZW5CBAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAApjb250ZXh0T2JqAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAA9hc3NldElkUmVjZWl2ZWQIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAAEnRva2VuUmVjZWl2ZUFtb3VudAgFAAAAB3BheW1lbnQAAAAGYW1vdW50AwkBAAAAAiE9AAAAAgUAAAARYXNzZXRJZFRva2VuU2hhcmUFAAAAD2Fzc2V0SWRSZWNlaXZlZAkAAAIAAAABCQABLAAAAAICAAAALXlvdSBuZWVkIHRvIGF0dGFjaCBzaGFyZSB0b2tlbiBmb3IgdGhpcyBkQXBwIAkAAlgAAAABBQAAABFhc3NldElkVG9rZW5TaGFyZQQAAAAMdG9rZW5zVG9QYXlBCQAAawAAAAMFAAAAEnRva2VuUmVjZWl2ZUFtb3VudAUAAAARZEFwcFRva2Vuc0Ftb3VudEEFAAAAEHRva2VuU2hhcmVTdXBwbHkEAAAADHRva2Vuc1RvUGF5QgkAAGsAAAADBQAAABJ0b2tlblJlY2VpdmVBbW91bnQFAAAAEWRBcHBUb2tlbnNBbW91bnRCBQAAABB0b2tlblNoYXJlU3VwcGx5AwkBAAAAAiE9AAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwIAAAAGc3RhdHVzBgkAAAIAAAABAgAAABBzdGF0dXM6IFVuYWN0aXZlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAAMdG9rZW5zVG9QYXlBBQAAAA1hc3NldElkVG9rZW5BCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAApjb250ZXh0T2JqAAAABmNhbGxlcgUAAAAMdG9rZW5zVG9QYXlCBQAAAA1hc3NldElkVG9rZW5CCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxhbW91bnRUb2tlbkEJAABlAAAAAgUAAAARZEFwcFRva2Vuc0Ftb3VudEEFAAAADHRva2Vuc1RvUGF5QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMYW1vdW50VG9rZW5CCQAAZQAAAAIFAAAAEWRBcHBUb2tlbnNBbW91bnRCBQAAAAx0b2tlbnNUb1BheUIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEnNoYXJlX3Rva2VuX3N1cHBseQkAAGUAAAACBQAAABB0b2tlblNoYXJlU3VwcGx5BQAAABJ0b2tlblJlY2VpdmVBbW91bnQJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAABFhc3NldElkVG9rZW5TaGFyZQUAAAASdG9rZW5SZWNlaXZlQW1vdW50BQAAAANuaWwAAAAKY29udGV4dE9iagEAAAAJZXhjaGFuZ2VyAAAAAQAAAA9taW5Ub2tlblJlY2lldmUEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAACmNvbnRleHRPYmoAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAAD2Fzc2V0SWRSZWNlaXZlZAgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAQAAAASdG9rZW5SZWNlaXZlQW1vdW50CAUAAAAHcGF5bWVudAAAAAZhbW91bnQDCQEAAAACIT0AAAACCQEAAAARQGV4dHJOYXRpdmUoMTA1MSkAAAACBQAAAAR0aGlzAgAAAAZzdGF0dXMGCQAAAgAAAAECAAAAEHN0YXR1czogVW5hY3RpdmUDCQAAAAAAAAIFAAAAD2Fzc2V0SWRSZWNlaXZlZAUAAAANYXNzZXRJZFRva2VuQgQAAAAZdG9rZW5TZW5kQW1vdW50V2l0aG91dEZlZQkAAGsAAAADBQAAAAxhbW91bnRUb2tlbkEFAAAAEnRva2VuUmVjZWl2ZUFtb3VudAkAAGQAAAACBQAAABJ0b2tlblJlY2VpdmVBbW91bnQFAAAADGFtb3VudFRva2VuQgQAAAAWdG9rZW5TZW5kQW1vdW50V2l0aEZlZQkAAGsAAAADBQAAABl0b2tlblNlbmRBbW91bnRXaXRob3V0RmVlCQAAZQAAAAIFAAAAF2NvbWlzc2lvblNjYWxlRGVsaW1pdGVyBQAAAAljb21pc3Npb24FAAAAF2NvbWlzc2lvblNjYWxlRGVsaW1pdGVyBAAAABN0b2tlblNlbmRHb3Zlcm5hbmNlCQAAawAAAAMFAAAAGXRva2VuU2VuZEFtb3VudFdpdGhvdXRGZWUFAAAAE2NvbW1pc2lvbkdvdmVybmFuY2UFAAAAF2NvbWlzc2lvblNjYWxlRGVsaW1pdGVyAwkAAGYAAAACBQAAAA9taW5Ub2tlblJlY2lldmUFAAAAFnRva2VuU2VuZEFtb3VudFdpdGhGZWUJAAACAAAAAQIAAABZUHJpY2UgaGFzIGNoYW5nZWQgZHJhbWF0aWNhbHkuIFJlY2VpdmluZyB0b2tlbiBhbW91bnQgZG9uJ3Qgc2F0aXNmeSBzcGVjaWZpZWQgcHJpY2UgbGV2ZWwEAAAAC2Fzc2V0SWRTZW5kBQAAAA1hc3NldElkVG9rZW5BCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxhbW91bnRUb2tlbkEJAABlAAAAAgkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkEFAAAAFnRva2VuU2VuZEFtb3VudFdpdGhGZWUFAAAAE3Rva2VuU2VuZEdvdmVybmFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAADGFtb3VudFRva2VuQgkAAGQAAAACBQAAAAxhbW91bnRUb2tlbkIFAAAAEnRva2VuUmVjZWl2ZUFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAAKY29udGV4dE9iagAAAAZjYWxsZXIFAAAAFnRva2VuU2VuZEFtb3VudFdpdGhGZWUFAAAAC2Fzc2V0SWRTZW5kCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEWdvdmVybmFuY2VBZGRyZXNzBQAAABN0b2tlblNlbmRHb3Zlcm5hbmNlBQAAAAthc3NldElkU2VuZAUAAAADbmlsAwkAAAAAAAACBQAAAA9hc3NldElkUmVjZWl2ZWQFAAAADWFzc2V0SWRUb2tlbkEEAAAAGXRva2VuU2VuZEFtb3VudFdpdGhvdXRGZWUJAABrAAAAAwUAAAAMYW1vdW50VG9rZW5CBQAAABJ0b2tlblJlY2VpdmVBbW91bnQJAABkAAAAAgUAAAASdG9rZW5SZWNlaXZlQW1vdW50BQAAAAxhbW91bnRUb2tlbkEEAAAAFnRva2VuU2VuZEFtb3VudFdpdGhGZWUJAABrAAAAAwUAAAAZdG9rZW5TZW5kQW1vdW50V2l0aG91dEZlZQkAAGUAAAACBQAAABdjb21pc3Npb25TY2FsZURlbGltaXRlcgUAAAAJY29taXNzaW9uBQAAABdjb21pc3Npb25TY2FsZURlbGltaXRlcgQAAAATdG9rZW5TZW5kR292ZXJuYW5jZQkAAGsAAAADBQAAABl0b2tlblNlbmRBbW91bnRXaXRob3V0RmVlBQAAABNjb21taXNpb25Hb3Zlcm5hbmNlBQAAABdjb21pc3Npb25TY2FsZURlbGltaXRlcgMJAABmAAAAAgUAAAAPbWluVG9rZW5SZWNpZXZlBQAAABZ0b2tlblNlbmRBbW91bnRXaXRoRmVlCQAAAgAAAAECAAAAWVByaWNlIGhhcyBjaGFuZ2VkIGRyYW1hdGljYWx5LiBSZWNlaXZpbmcgdG9rZW4gYW1vdW50IGRvbid0IHNhdGlzZnkgc3BlY2lmaWVkIHByaWNlIGxldmVsBAAAAAthc3NldElkU2VuZAUAAAANYXNzZXRJZFRva2VuQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAMYW1vdW50VG9rZW5BCQAAZAAAAAIFAAAADGFtb3VudFRva2VuQQUAAAASdG9rZW5SZWNlaXZlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAxhbW91bnRUb2tlbkIJAABlAAAAAgkAAGUAAAACBQAAAAxhbW91bnRUb2tlbkIFAAAAFnRva2VuU2VuZEFtb3VudFdpdGhGZWUFAAAAE3Rva2VuU2VuZEdvdmVybmFuY2UJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAACmNvbnRleHRPYmoAAAAGY2FsbGVyBQAAABZ0b2tlblNlbmRBbW91bnRXaXRoRmVlBQAAAAthc3NldElkU2VuZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABFnb3Zlcm5hbmNlQWRkcmVzcwUAAAATdG9rZW5TZW5kR292ZXJuYW5jZQUAAAALYXNzZXRJZFNlbmQFAAAAA25pbAkAAAIAAAABAgAAABRBc3NldCBpcyBub3QgYWxsb3dlZAAAAABa/TIb", "chainId": 87, "height": 2303208, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7qZxihqSFgyC4isBmtNRfhdNFpe49XrWvLFwpis7c6J9 Next: HqhNrfQYpJ6zS7PY9sFndAMEuqDTLo1tyt63zQa4tUka Diff:
OldNewDifferences
2323
2424 let k = "1.0.0"
2525
26-let l = 100000000
26+let l = 1000
2727
28-let m = 8
28+let m = 100000000
2929
30-func n (o) = if ((o == "WAVES"))
30+let n = 8
31+
32+func o (p) = if ((p == "WAVES"))
3133 then unit
32- else fromBase58String(o)
34+ else fromBase58String(p)
3335
3436
35-let p = n(b)
37+let q = o(b)
3638
37-let q = n(c)
39+let r = o(c)
3840
39-let r = fromBase58String(f)
41+let s = fromBase58String(f)
4042
41-@Callable(s)
43+@Callable(t)
4244 func fund () = {
43- let t = value(s.payments[0])
44- let u = value(s.payments[1])
45- let v = t.assetId
46- let w = t.amount
47- let x = u.assetId
48- let y = u.amount
49- let z = {
50- let A = v
51- if ($isInstanceOf(A, "Unit"))
45+ let u = value(t.payments[0])
46+ let v = value(t.payments[1])
47+ let w = u.assetId
48+ let x = u.amount
49+ let y = v.assetId
50+ let z = v.amount
51+ let A = {
52+ let B = w
53+ if ($isInstanceOf(B, "Unit"))
5254 then {
53- let B = A
55+ let C = B
5456 8
5557 }
56- else if ($isInstanceOf(A, "ByteVector"))
58+ else if ($isInstanceOf(B, "ByteVector"))
5759 then {
58- let B = A
59- value(assetInfo(B)).decimals
60+ let C = B
61+ value(assetInfo(C)).decimals
6062 }
6163 else throw("Match error")
6264 }
63- let C = {
64- let A = x
65- if ($isInstanceOf(A, "Unit"))
65+ let D = {
66+ let B = y
67+ if ($isInstanceOf(B, "Unit"))
6668 then {
67- let B = A
69+ let C = B
6870 8
6971 }
70- else if ($isInstanceOf(A, "ByteVector"))
72+ else if ($isInstanceOf(B, "ByteVector"))
7173 then {
72- let B = A
73- value(assetInfo(B)).decimals
74+ let C = B
75+ value(assetInfo(C)).decimals
7476 }
7577 else throw("Match error")
7678 }
7779 if (isDefined(getBoolean(this, "status")))
7880 then throw("already active")
7981 else {
80- let D = ("ShareT_" + takeRight(toString(this), 5))
81- let E = ((z + C) / 2)
82- let F = fraction(pow(w, z, 5, 1, z, HALFDOWN), pow(y, C, 5, 1, C, HALFDOWN), pow(10, 0, E, 0, 0, HALFDOWN))
83- let G = calculateAssetId(Issue(D, D, F, E, true))
84- let H = {
85- let A = v
86- if ($isInstanceOf(A, "Unit"))
82+ let E = ("ShareT_" + takeRight(toString(this), 5))
83+ let F = ((A + D) / 2)
84+ let G = fraction(pow(x, A, 5, 1, A, HALFDOWN), pow(z, D, 5, 1, D, HALFDOWN), pow(10, 0, F, 0, 0, HALFDOWN))
85+ let H = calculateAssetId(Issue(E, E, G, F, true))
86+ let I = {
87+ let B = w
88+ if ($isInstanceOf(B, "Unit"))
8789 then {
88- let I = A
90+ let J = B
8991 "WAVES"
9092 }
91- else if ($isInstanceOf(A, "ByteVector"))
93+ else if ($isInstanceOf(B, "ByteVector"))
9294 then {
93- let I = A
94- toBase58String(value(v))
95+ let J = B
96+ toBase58String(value(w))
9597 }
9698 else throw("Match error")
9799 }
98- let J = {
99- let A = x
100- if ($isInstanceOf(A, "Unit"))
100+ let K = {
101+ let B = y
102+ if ($isInstanceOf(B, "Unit"))
101103 then {
102- let I = A
104+ let J = B
103105 "WAVES"
104106 }
105- else if ($isInstanceOf(A, "ByteVector"))
107+ else if ($isInstanceOf(B, "ByteVector"))
106108 then {
107- let I = A
108- toBase58String(value(x))
109+ let J = B
110+ toBase58String(value(y))
109111 }
110112 else throw("Match error")
111113 }
112-[IntegerEntry("amountTokenA", w), IntegerEntry("amountTokenB", y), StringEntry("assetIdTokenA", H), StringEntry("assetIdTokenB", J), BooleanEntry("status", true), IntegerEntry("comission", h), IntegerEntry("comissionScaleDelimiter", j), StringEntry("version", k), Issue(D, D, F, E, true), ScriptTransfer(s.caller, F, G), StringEntry("share_token_id", toBase58String(G)), IntegerEntry("share_token_supply", F)]
114+[IntegerEntry("amountTokenA", x), IntegerEntry("amountTokenB", z), StringEntry("assetIdTokenA", I), StringEntry("assetIdTokenB", K), BooleanEntry("status", true), IntegerEntry("comission", h), IntegerEntry("comissionScaleDelimiter", j), StringEntry("version", k), Issue(E, E, G, F, true), ScriptTransfer(t.caller, G, H), StringEntry("share_token_id", toBase58String(H)), IntegerEntry("share_token_supply", G)]
113115 }
114116 }
115117
116118
117119
118-@Callable(s)
119-func replenishment () = {
120- let t = value(s.payments[0])
121- let u = value(s.payments[1])
122- let v = t.assetId
123- let w = t.amount
124- let x = u.assetId
125- let y = u.amount
126- let K = getIntegerValue(this, "amountTokenA")
127- let L = getIntegerValue(this, "amountTokenB")
128- if (if ((v != p))
120+@Callable(t)
121+func replenishmentWithTwoToken () = {
122+ let u = value(t.payments[0])
123+ let v = value(t.payments[1])
124+ let w = u.assetId
125+ let x = u.amount
126+ let y = v.assetId
127+ let z = v.amount
128+ let L = getIntegerValue(this, "amountTokenA")
129+ let M = getIntegerValue(this, "amountTokenB")
130+ if (if ((w != q))
129131 then true
130- else (x != q))
132+ else (y != r))
131133 then throw("incorrect assets")
132134 else {
133- let M = (fraction(w, (1000000000000 * 100000), K) / fraction(L, 1000000000000, y))
134- if (!(if ((M > 99990))
135- then (100010 > M)
136- else false))
137- then throw("incorrect assets amount")
135+ let N = (fraction(L, (1000000000000 * l), x) / fraction(M, 1000000000000, z))
136+ if (!((N == l)))
137+ then throw("incorrect assets amount: amounts must have the contract ratio")
138138 else {
139- let N = fraction(w, g, K)
140- if ((N == 0))
139+ let O = fraction(x, g, L)
140+ if ((O == 0))
141141 then throw("you try replansish with very small amount")
142- else [Reissue(r, N, true), ScriptTransfer(s.caller, N, r), IntegerEntry("share_token_supply", (g + N)), IntegerEntry("amountTokenA", (K + w)), IntegerEntry("amountTokenB", (L + y))]
142+ else [Reissue(s, O, true), ScriptTransfer(t.caller, O, s), IntegerEntry("share_token_supply", (g + O)), IntegerEntry("amountTokenA", (L + x)), IntegerEntry("amountTokenB", (M + z))]
143143 }
144144 }
145145 }
146146
147147
148148
149-@Callable(s)
149+@Callable(t)
150150 func replanishmentWithOneToken () = {
151- let O = value(s.payments[0])
152- let P = O.assetId
153- let Q = O.amount
154- if ((P == p))
151+ let P = value(t.payments[0])
152+ let Q = P.assetId
153+ let R = P.amount
154+ if ((Q == q))
155155 then {
156- let R = (e + Q)
157- let S = fraction(R, l, d)
158- let T = pow(fraction(e, d, S), 0, 5, 1, 0, HALFDOWN)
159- let U = fraction(d, g, T)
160- let N = (U - g)
161-[Reissue(r, N, true), ScriptTransfer(s.caller, N, r), IntegerEntry("share_token_supply", (g + N)), IntegerEntry("amountTokenA", R)]
156+ let S = (e + R)
157+ let T = fraction(S, m, d)
158+ let U = pow(fraction(e, d, T), 0, 5, 1, 0, HALFDOWN)
159+ let V = fraction(d, g, U)
160+ let O = (V - g)
161+[Reissue(s, O, true), ScriptTransfer(t.caller, O, s), IntegerEntry("share_token_supply", (g + O)), IntegerEntry("amountTokenA", S)]
162162 }
163- else if ((P == q))
163+ else if ((Q == r))
164164 then {
165- let V = (d + Q)
166- let S = fraction(e, l, V)
167- let T = pow(fraction(e, d, S), 0, 5, 1, 0, HALFDOWN)
168- let U = fraction(d, g, T)
169- let N = (U - g)
170-[Reissue(r, N, true), ScriptTransfer(s.caller, N, r), IntegerEntry("share_token_supply", (g + N)), IntegerEntry("amountTokenB", V)]
165+ let W = (d + R)
166+ let T = fraction(e, m, W)
167+ let U = pow(fraction(e, d, T), 0, 5, 1, 0, HALFDOWN)
168+ let V = fraction(d, g, U)
169+ let O = (V - g)
170+[Reissue(s, O, true), ScriptTransfer(t.caller, O, s), IntegerEntry("share_token_supply", (g + O)), IntegerEntry("amountTokenB", W)]
171171 }
172172 else throw("incorrect assets in payment")
173173 }
174174
175175
176176
177-@Callable(s)
177+@Callable(t)
178178 func withdraw () = {
179- let K = getIntegerValue(this, "amountTokenA")
180- let L = getIntegerValue(this, "amountTokenB")
181- let O = value(s.payments[0])
182- let P = O.assetId
183- let Q = O.amount
184- if ((r != P))
185- then throw(("you need to attach share token for this dApp " + toBase58String(r)))
179+ let L = getIntegerValue(this, "amountTokenA")
180+ let M = getIntegerValue(this, "amountTokenB")
181+ let P = value(t.payments[0])
182+ let Q = P.assetId
183+ let R = P.amount
184+ if ((s != Q))
185+ then throw(("you need to attach share token for this dApp " + toBase58String(s)))
186186 else {
187- let W = fraction(Q, K, g)
188- let X = fraction(Q, L, g)
187+ let X = fraction(R, L, g)
188+ let Y = fraction(R, M, g)
189189 if ((getBooleanValue(this, "status") != true))
190190 then throw("status: Unactive")
191- else [ScriptTransfer(s.caller, W, p), ScriptTransfer(s.caller, X, q), IntegerEntry("amountTokenA", (K - W)), IntegerEntry("amountTokenB", (L - X)), IntegerEntry("share_token_supply", (g - Q)), Burn(r, Q)]
191+ else [ScriptTransfer(t.caller, X, q), ScriptTransfer(t.caller, Y, r), IntegerEntry("amountTokenA", (L - X)), IntegerEntry("amountTokenB", (M - Y)), IntegerEntry("share_token_supply", (g - R)), Burn(s, R)]
192192 }
193193 }
194194
195195
196196
197-@Callable(s)
198-func exchanger (Y) = {
199- let O = value(s.payments[0])
200- let P = O.assetId
201- let Q = O.amount
197+@Callable(t)
198+func exchanger (Z) = {
199+ let P = value(t.payments[0])
200+ let Q = P.assetId
201+ let R = P.amount
202202 if ((getBooleanValue(this, "status") != true))
203203 then throw("status: Unactive")
204- else if ((P == q))
204+ else if ((Q == r))
205205 then {
206- let Z = fraction(e, Q, (Q + d))
207- let aa = fraction(Z, (j - h), j)
208- let ab = fraction(Z, i, j)
209- if ((Y > aa))
206+ let aa = fraction(e, R, (R + d))
207+ let ab = fraction(aa, (j - h), j)
208+ let ac = fraction(aa, i, j)
209+ if ((Z > ab))
210210 then throw("Price has changed dramaticaly. Receiving token amount don't satisfy specified price level")
211211 else {
212- let ac = p
213-[IntegerEntry("amountTokenA", ((e - aa) - ab)), IntegerEntry("amountTokenB", (d + Q)), ScriptTransfer(s.caller, aa, ac), ScriptTransfer(a, ab, ac)]
212+ let ad = q
213+[IntegerEntry("amountTokenA", ((e - ab) - ac)), IntegerEntry("amountTokenB", (d + R)), ScriptTransfer(t.caller, ab, ad), ScriptTransfer(a, ac, ad)]
214214 }
215215 }
216- else if ((P == p))
216+ else if ((Q == q))
217217 then {
218- let Z = fraction(d, Q, (Q + e))
219- let aa = fraction(Z, (j - h), j)
220- let ab = fraction(Z, i, j)
221- if ((Y > aa))
218+ let aa = fraction(d, R, (R + e))
219+ let ab = fraction(aa, (j - h), j)
220+ let ac = fraction(aa, i, j)
221+ if ((Z > ab))
222222 then throw("Price has changed dramaticaly. Receiving token amount don't satisfy specified price level")
223223 else {
224- let ac = q
225-[IntegerEntry("amountTokenA", (e + Q)), IntegerEntry("amountTokenB", ((d - aa) - ab)), ScriptTransfer(s.caller, aa, ac), ScriptTransfer(a, ab, ac)]
224+ let ad = r
225+[IntegerEntry("amountTokenA", (e + R)), IntegerEntry("amountTokenB", ((d - ab) - ac)), ScriptTransfer(t.caller, ab, ad), ScriptTransfer(a, ac, ad)]
226226 }
227227 }
228228 else throw("Asset is not allowed")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = Address(base58'3MSNMcqyweiM9cWpvf4Fn8GAWeuPstxj2hK')
55
66 let b = getStringValue(this, "assetIdTokenA")
77
88 let c = getStringValue(this, "assetIdTokenB")
99
1010 let d = getIntegerValue(this, "amountTokenB")
1111
1212 let e = getIntegerValue(this, "amountTokenA")
1313
1414 let f = getStringValue(this, "share_token_id")
1515
1616 let g = getIntegerValue(this, "share_token_supply")
1717
1818 let h = 300
1919
2020 let i = 200
2121
2222 let j = 1000000
2323
2424 let k = "1.0.0"
2525
26-let l = 100000000
26+let l = 1000
2727
28-let m = 8
28+let m = 100000000
2929
30-func n (o) = if ((o == "WAVES"))
30+let n = 8
31+
32+func o (p) = if ((p == "WAVES"))
3133 then unit
32- else fromBase58String(o)
34+ else fromBase58String(p)
3335
3436
35-let p = n(b)
37+let q = o(b)
3638
37-let q = n(c)
39+let r = o(c)
3840
39-let r = fromBase58String(f)
41+let s = fromBase58String(f)
4042
41-@Callable(s)
43+@Callable(t)
4244 func fund () = {
43- let t = value(s.payments[0])
44- let u = value(s.payments[1])
45- let v = t.assetId
46- let w = t.amount
47- let x = u.assetId
48- let y = u.amount
49- let z = {
50- let A = v
51- if ($isInstanceOf(A, "Unit"))
45+ let u = value(t.payments[0])
46+ let v = value(t.payments[1])
47+ let w = u.assetId
48+ let x = u.amount
49+ let y = v.assetId
50+ let z = v.amount
51+ let A = {
52+ let B = w
53+ if ($isInstanceOf(B, "Unit"))
5254 then {
53- let B = A
55+ let C = B
5456 8
5557 }
56- else if ($isInstanceOf(A, "ByteVector"))
58+ else if ($isInstanceOf(B, "ByteVector"))
5759 then {
58- let B = A
59- value(assetInfo(B)).decimals
60+ let C = B
61+ value(assetInfo(C)).decimals
6062 }
6163 else throw("Match error")
6264 }
63- let C = {
64- let A = x
65- if ($isInstanceOf(A, "Unit"))
65+ let D = {
66+ let B = y
67+ if ($isInstanceOf(B, "Unit"))
6668 then {
67- let B = A
69+ let C = B
6870 8
6971 }
70- else if ($isInstanceOf(A, "ByteVector"))
72+ else if ($isInstanceOf(B, "ByteVector"))
7173 then {
72- let B = A
73- value(assetInfo(B)).decimals
74+ let C = B
75+ value(assetInfo(C)).decimals
7476 }
7577 else throw("Match error")
7678 }
7779 if (isDefined(getBoolean(this, "status")))
7880 then throw("already active")
7981 else {
80- let D = ("ShareT_" + takeRight(toString(this), 5))
81- let E = ((z + C) / 2)
82- let F = fraction(pow(w, z, 5, 1, z, HALFDOWN), pow(y, C, 5, 1, C, HALFDOWN), pow(10, 0, E, 0, 0, HALFDOWN))
83- let G = calculateAssetId(Issue(D, D, F, E, true))
84- let H = {
85- let A = v
86- if ($isInstanceOf(A, "Unit"))
82+ let E = ("ShareT_" + takeRight(toString(this), 5))
83+ let F = ((A + D) / 2)
84+ let G = fraction(pow(x, A, 5, 1, A, HALFDOWN), pow(z, D, 5, 1, D, HALFDOWN), pow(10, 0, F, 0, 0, HALFDOWN))
85+ let H = calculateAssetId(Issue(E, E, G, F, true))
86+ let I = {
87+ let B = w
88+ if ($isInstanceOf(B, "Unit"))
8789 then {
88- let I = A
90+ let J = B
8991 "WAVES"
9092 }
91- else if ($isInstanceOf(A, "ByteVector"))
93+ else if ($isInstanceOf(B, "ByteVector"))
9294 then {
93- let I = A
94- toBase58String(value(v))
95+ let J = B
96+ toBase58String(value(w))
9597 }
9698 else throw("Match error")
9799 }
98- let J = {
99- let A = x
100- if ($isInstanceOf(A, "Unit"))
100+ let K = {
101+ let B = y
102+ if ($isInstanceOf(B, "Unit"))
101103 then {
102- let I = A
104+ let J = B
103105 "WAVES"
104106 }
105- else if ($isInstanceOf(A, "ByteVector"))
107+ else if ($isInstanceOf(B, "ByteVector"))
106108 then {
107- let I = A
108- toBase58String(value(x))
109+ let J = B
110+ toBase58String(value(y))
109111 }
110112 else throw("Match error")
111113 }
112-[IntegerEntry("amountTokenA", w), IntegerEntry("amountTokenB", y), StringEntry("assetIdTokenA", H), StringEntry("assetIdTokenB", J), BooleanEntry("status", true), IntegerEntry("comission", h), IntegerEntry("comissionScaleDelimiter", j), StringEntry("version", k), Issue(D, D, F, E, true), ScriptTransfer(s.caller, F, G), StringEntry("share_token_id", toBase58String(G)), IntegerEntry("share_token_supply", F)]
114+[IntegerEntry("amountTokenA", x), IntegerEntry("amountTokenB", z), StringEntry("assetIdTokenA", I), StringEntry("assetIdTokenB", K), BooleanEntry("status", true), IntegerEntry("comission", h), IntegerEntry("comissionScaleDelimiter", j), StringEntry("version", k), Issue(E, E, G, F, true), ScriptTransfer(t.caller, G, H), StringEntry("share_token_id", toBase58String(H)), IntegerEntry("share_token_supply", G)]
113115 }
114116 }
115117
116118
117119
118-@Callable(s)
119-func replenishment () = {
120- let t = value(s.payments[0])
121- let u = value(s.payments[1])
122- let v = t.assetId
123- let w = t.amount
124- let x = u.assetId
125- let y = u.amount
126- let K = getIntegerValue(this, "amountTokenA")
127- let L = getIntegerValue(this, "amountTokenB")
128- if (if ((v != p))
120+@Callable(t)
121+func replenishmentWithTwoToken () = {
122+ let u = value(t.payments[0])
123+ let v = value(t.payments[1])
124+ let w = u.assetId
125+ let x = u.amount
126+ let y = v.assetId
127+ let z = v.amount
128+ let L = getIntegerValue(this, "amountTokenA")
129+ let M = getIntegerValue(this, "amountTokenB")
130+ if (if ((w != q))
129131 then true
130- else (x != q))
132+ else (y != r))
131133 then throw("incorrect assets")
132134 else {
133- let M = (fraction(w, (1000000000000 * 100000), K) / fraction(L, 1000000000000, y))
134- if (!(if ((M > 99990))
135- then (100010 > M)
136- else false))
137- then throw("incorrect assets amount")
135+ let N = (fraction(L, (1000000000000 * l), x) / fraction(M, 1000000000000, z))
136+ if (!((N == l)))
137+ then throw("incorrect assets amount: amounts must have the contract ratio")
138138 else {
139- let N = fraction(w, g, K)
140- if ((N == 0))
139+ let O = fraction(x, g, L)
140+ if ((O == 0))
141141 then throw("you try replansish with very small amount")
142- else [Reissue(r, N, true), ScriptTransfer(s.caller, N, r), IntegerEntry("share_token_supply", (g + N)), IntegerEntry("amountTokenA", (K + w)), IntegerEntry("amountTokenB", (L + y))]
142+ else [Reissue(s, O, true), ScriptTransfer(t.caller, O, s), IntegerEntry("share_token_supply", (g + O)), IntegerEntry("amountTokenA", (L + x)), IntegerEntry("amountTokenB", (M + z))]
143143 }
144144 }
145145 }
146146
147147
148148
149-@Callable(s)
149+@Callable(t)
150150 func replanishmentWithOneToken () = {
151- let O = value(s.payments[0])
152- let P = O.assetId
153- let Q = O.amount
154- if ((P == p))
151+ let P = value(t.payments[0])
152+ let Q = P.assetId
153+ let R = P.amount
154+ if ((Q == q))
155155 then {
156- let R = (e + Q)
157- let S = fraction(R, l, d)
158- let T = pow(fraction(e, d, S), 0, 5, 1, 0, HALFDOWN)
159- let U = fraction(d, g, T)
160- let N = (U - g)
161-[Reissue(r, N, true), ScriptTransfer(s.caller, N, r), IntegerEntry("share_token_supply", (g + N)), IntegerEntry("amountTokenA", R)]
156+ let S = (e + R)
157+ let T = fraction(S, m, d)
158+ let U = pow(fraction(e, d, T), 0, 5, 1, 0, HALFDOWN)
159+ let V = fraction(d, g, U)
160+ let O = (V - g)
161+[Reissue(s, O, true), ScriptTransfer(t.caller, O, s), IntegerEntry("share_token_supply", (g + O)), IntegerEntry("amountTokenA", S)]
162162 }
163- else if ((P == q))
163+ else if ((Q == r))
164164 then {
165- let V = (d + Q)
166- let S = fraction(e, l, V)
167- let T = pow(fraction(e, d, S), 0, 5, 1, 0, HALFDOWN)
168- let U = fraction(d, g, T)
169- let N = (U - g)
170-[Reissue(r, N, true), ScriptTransfer(s.caller, N, r), IntegerEntry("share_token_supply", (g + N)), IntegerEntry("amountTokenB", V)]
165+ let W = (d + R)
166+ let T = fraction(e, m, W)
167+ let U = pow(fraction(e, d, T), 0, 5, 1, 0, HALFDOWN)
168+ let V = fraction(d, g, U)
169+ let O = (V - g)
170+[Reissue(s, O, true), ScriptTransfer(t.caller, O, s), IntegerEntry("share_token_supply", (g + O)), IntegerEntry("amountTokenB", W)]
171171 }
172172 else throw("incorrect assets in payment")
173173 }
174174
175175
176176
177-@Callable(s)
177+@Callable(t)
178178 func withdraw () = {
179- let K = getIntegerValue(this, "amountTokenA")
180- let L = getIntegerValue(this, "amountTokenB")
181- let O = value(s.payments[0])
182- let P = O.assetId
183- let Q = O.amount
184- if ((r != P))
185- then throw(("you need to attach share token for this dApp " + toBase58String(r)))
179+ let L = getIntegerValue(this, "amountTokenA")
180+ let M = getIntegerValue(this, "amountTokenB")
181+ let P = value(t.payments[0])
182+ let Q = P.assetId
183+ let R = P.amount
184+ if ((s != Q))
185+ then throw(("you need to attach share token for this dApp " + toBase58String(s)))
186186 else {
187- let W = fraction(Q, K, g)
188- let X = fraction(Q, L, g)
187+ let X = fraction(R, L, g)
188+ let Y = fraction(R, M, g)
189189 if ((getBooleanValue(this, "status") != true))
190190 then throw("status: Unactive")
191- else [ScriptTransfer(s.caller, W, p), ScriptTransfer(s.caller, X, q), IntegerEntry("amountTokenA", (K - W)), IntegerEntry("amountTokenB", (L - X)), IntegerEntry("share_token_supply", (g - Q)), Burn(r, Q)]
191+ else [ScriptTransfer(t.caller, X, q), ScriptTransfer(t.caller, Y, r), IntegerEntry("amountTokenA", (L - X)), IntegerEntry("amountTokenB", (M - Y)), IntegerEntry("share_token_supply", (g - R)), Burn(s, R)]
192192 }
193193 }
194194
195195
196196
197-@Callable(s)
198-func exchanger (Y) = {
199- let O = value(s.payments[0])
200- let P = O.assetId
201- let Q = O.amount
197+@Callable(t)
198+func exchanger (Z) = {
199+ let P = value(t.payments[0])
200+ let Q = P.assetId
201+ let R = P.amount
202202 if ((getBooleanValue(this, "status") != true))
203203 then throw("status: Unactive")
204- else if ((P == q))
204+ else if ((Q == r))
205205 then {
206- let Z = fraction(e, Q, (Q + d))
207- let aa = fraction(Z, (j - h), j)
208- let ab = fraction(Z, i, j)
209- if ((Y > aa))
206+ let aa = fraction(e, R, (R + d))
207+ let ab = fraction(aa, (j - h), j)
208+ let ac = fraction(aa, i, j)
209+ if ((Z > ab))
210210 then throw("Price has changed dramaticaly. Receiving token amount don't satisfy specified price level")
211211 else {
212- let ac = p
213-[IntegerEntry("amountTokenA", ((e - aa) - ab)), IntegerEntry("amountTokenB", (d + Q)), ScriptTransfer(s.caller, aa, ac), ScriptTransfer(a, ab, ac)]
212+ let ad = q
213+[IntegerEntry("amountTokenA", ((e - ab) - ac)), IntegerEntry("amountTokenB", (d + R)), ScriptTransfer(t.caller, ab, ad), ScriptTransfer(a, ac, ad)]
214214 }
215215 }
216- else if ((P == p))
216+ else if ((Q == q))
217217 then {
218- let Z = fraction(d, Q, (Q + e))
219- let aa = fraction(Z, (j - h), j)
220- let ab = fraction(Z, i, j)
221- if ((Y > aa))
218+ let aa = fraction(d, R, (R + e))
219+ let ab = fraction(aa, (j - h), j)
220+ let ac = fraction(aa, i, j)
221+ if ((Z > ab))
222222 then throw("Price has changed dramaticaly. Receiving token amount don't satisfy specified price level")
223223 else {
224- let ac = q
225-[IntegerEntry("amountTokenA", (e + Q)), IntegerEntry("amountTokenB", ((d - aa) - ab)), ScriptTransfer(s.caller, aa, ac), ScriptTransfer(a, ab, ac)]
224+ let ad = r
225+[IntegerEntry("amountTokenA", (e + R)), IntegerEntry("amountTokenB", ((d - ab) - ac)), ScriptTransfer(t.caller, ab, ad), ScriptTransfer(a, ac, ad)]
226226 }
227227 }
228228 else throw("Asset is not allowed")
229229 }
230230
231231

github/deemru/w8io/6500d08 
98.67 ms