tx · GCyVciKzbZiFXzsEEC9nKZWxbCPXqbSJ9amCt5dDc8fP

3MsrZrKSaFkozCMp1q9DqmmC5vycG7bhHVY:  -0.03100000 Waves

2022.07.10 06:01 [2133055] smart account 3MsrZrKSaFkozCMp1q9DqmmC5vycG7bhHVY > SELF 0.00000000 Waves

{ "type": 13, "id": "GCyVciKzbZiFXzsEEC9nKZWxbCPXqbSJ9amCt5dDc8fP", "fee": 3100000, "feeAssetId": null, "timestamp": 1657422170072, "version": 2, "chainId": 84, "sender": "3MsrZrKSaFkozCMp1q9DqmmC5vycG7bhHVY", "senderPublicKey": "37VJwS33gphvvm8qXykkVtz1jCbcYAyLejXpYYA4GWNL", "proofs": [ "5g85V1dCEjW9j97tAHCEcJFbbFq2rUbQTaHc3ZED2prKiuoiN8fvrQxQZ1d1Mw5DfYpe9nB6bCLbohTQjRME2g3f" ], "script": "base64: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c3RyaW5nQXNzZXQCAAAABVdBVkVTBwMFAAAAB2FjV2F2ZXMGCQAAAgAAAAECAAAANFRoZSBzbWFydCBjb250cmFjdCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBXYXZlcy4DCQAAAAAAAAIFAAAABmFzc2V0UwkAAlkAAAABBQAAAAtzdHJpbmdBc3NldAYHAQAAAA50b3RhbEFzc2V0UG9vbAAAAAIAAAADa2V5AAAAB2Fzc2V0THAEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEDBQAAAAdhc3NldExwCQAAaAAAAAIAAAAAAAAAAAEFAAAAAkQ4AAAAAAAAAAABAAAADQAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAkAAAALTWFpbkFzc2V0SWQAAAALVXNkbkFzc2V0SWQAAAALVXNkdEFzc2V0SWQAAAALVXNkY0Fzc2V0SWQAAAALTmdubkFzc2V0SWQAAAALRXVybkFzc2V0SWQAAAAScGVyY2VudGFnZVJhdGVTd2FwAAAAEWJsb2NrRGlzdHJpYnV0aW9uAAAAC2FjY2VwdFdhdmVzAwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBgkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIJAQAAABFhZG1pblZlcmlmaWNhdGlvbgAAAAAEAAAAD2tleVBvb2xVc2RuVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkbkFzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkblVzZGMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtVc2RjQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5OZ25uCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2RuV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZG5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZG5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZG5FdXJuCQEAAAACa3AAAAACBQAAAAtVc2RuQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAD2tleVBvb2xVc2RjVXNkdAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC1VzZHRBc3NldElkBAAAAA9rZXlQb29sVXNkY05nbm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtOZ25uQXNzZXRJZAQAAAAQa2V5UG9vbFVzZGNXYXZlcwkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAABXdhdmVzBAAAABRrZXlQb29sVXNkY01haW5Bc3NldAkBAAAAAmtwAAAAAgUAAAALVXNkY0Fzc2V0SWQFAAAAC01haW5Bc3NldElkBAAAAA9rZXlQb29sVXNkY0V1cm4JAQAAAAJrcAAAAAIFAAAAC1VzZGNBc3NldElkBQAAAAtFdXJuQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHROZ25uCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALTmdubkFzc2V0SWQEAAAAEGtleVBvb2xVc2R0V2F2ZXMJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbFVzZHRNYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC1VzZHRBc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbFVzZHRFdXJuCQEAAAACa3AAAAACBQAAAAtVc2R0QXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xOZ25uV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAV3YXZlcwQAAAAUa2V5UG9vbE5nbm5NYWluQXNzZXQJAQAAAAJrcAAAAAIFAAAAC05nbm5Bc3NldElkBQAAAAtNYWluQXNzZXRJZAQAAAAPa2V5UG9vbE5nbm5FdXJuCQEAAAACa3AAAAACBQAAAAtOZ25uQXNzZXRJZAUAAAALRXVybkFzc2V0SWQEAAAAEGtleVBvb2xNYWluV2F2ZXMJAQAAAAJrcAAAAAIFAAAAC01haW5Bc3NldElkBQAAAAV3YXZl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QXNzZXQxBQAAAAZBc3NldDIFAAAABkFzc2V0MgQAAAATY3VycmVudEFtb3VudEFzc2V0MQkBAAAABnBvb2xBQQAAAAMFAAAACmN1cnJlbnRLZXkJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyBQAAAAZBc3NldDEEAAAAE2N1cnJlbnRBbW91bnRBc3NldDIJAQAAAAZwb29sQUEAAAADBQAAAApjdXJyZW50S2V5CQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgUAAAAGQXNzZXQyBAAAABZuZXdjdXJyZW50QW1vdW50QXNzZXQxCQAAZQAAAAIFAAAAE2N1cnJlbnRBbW91bnRBc3NldDEFAAAADXJlY2VpdmVBc3NldDEEAAAAFm5ld2N1cnJlbnRBbW91bnRBc3NldDIJAABlAAAAAgUAAAATY3VycmVudEFtb3VudEFzc2V0MgUAAAANcmVjZWl2ZUFzc2V0MgQAAAAQbmV3Y3VycmVudEFtb3VudAkAAGUAAAACBQAAAA1jdXJyZW50QW1vdW50BQAAAAZBbW91bnQEAAAADW5ld2Fzc2V0MXBvb2wJAABlAAAAAgUAAAAKYXNzZXQxcG9vbAUAAAANcmVjZWl2ZUFzc2V0MQQAAAANbmV3YXNzZXQycG9vbAkAAGUAAAACBQAAAAphc3NldDJwb29sBQAAAA1yZWNlaXZlQXNzZXQyAwkAAAAAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkCQACWQAAAAEFAAAACWxwQXNzZXRJZAMJAAAAAAAAAgUAAAAGQW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQJAARMAAAAAgkBAAAABEJ1cm4AAAACCQACWQAAAAEFAAAACWxwQXNzZXRJZAUAAAAGQW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAANcmVjZWl2ZUFzc2V0MQUAAAAGYXNzZXQxCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAANcmVjZWl2ZUFzc2V0MgUAAAAGYXNzZXQyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAEcGtleQAAAAMFAAAABkFzc2V0MQUAAAAGQXNzZXQyBQAAAApjdXJyZW50S2V5BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQIAAAABXwkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDICAAAAAV8FAAAABkFzc2V0MQUAAAAWbmV3Y3VycmVudEFtb3VudEFzc2V0MQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAAAFfCQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgIAAAABXwUAAAAGQXNzZXQyBQAAABZuZXdjdXJyZW50QW1vdW50QXNzZXQyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDICAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAEG5ld2N1cnJlbnRBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgIAAAABXwUAAAAGQXNzZXQxBQAAAA1uZXdhc3NldDFwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkBAAAAAmtwAAAAAgUAAAAGQXNzZXQxBQAAAAZBc3NldDICAAAAAV8FAAAABkFzc2V0MgUAAAANbmV3YXNzZXQycG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAGQXNzZXQxCQAAZQAAAAIJAQAAABNnZXRBbW91bnRCbG9ja0Fzc2V0AAAAAQUAAAAGQXNzZXQxBQAAAA1yZWNlaXZlQXNzZXQxCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAZBc3NldDIJAABlAAAAAgkBAAAAE2dldEFtb3VudEJsb2NrQXNzZXQAAAABBQAAAAZBc3NldDIFAAAADXJlY2VpdmVBc3NldDIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACWxwQXNzZXRJZAkAAGUAAAACCQEAAAATZ2V0QW1vdW50QmxvY2tBc3NldAAAAAEFAAAACWxwQXNzZXRJZAUAAAAGQW1vdW50BQAAAANuaWwJAAACAAAAAQIAAAAsV2l0aGRyYXdhbCBhbW91bnQgbG93ZXIgdGhhbiBhc3NldCBscCBhbW91bnQJAAACAAAAAQIAAAA5UmVxdWlyZXMgYW4gbHAgYXNzZXQgYXMgcGF5bWVudCB0byByZW1vdmUgbG9ja2VkIGFtb3VudHMuCQAAAgAAAAECAAAASEFtb3VudCB0byBiZSB3aXRoZHJhd24gZ3JlYXRlciB0aGFuIHRoZSBhbW91bnQgYXZhaWxhYmxlIGZvciB3aXRoZHJhd2FsLgkAAAIAAAABAgAAACtZb3UgaGF2ZSBubyBsb2NrZWQgdmFsdWVzIOKAi+KAi2luIHRoZSBwb29sCQAAAgAAAAECAAAAEUludmFsaWQgUG9vbCBLZXkuCQAAAgAAAAECAAAAGUludmFsaWQgQXNzZXQxIG9yIEFzc2V0MiEJAAACAAAAAQIAAAAgQXNzZXQxIGNhbm5vdCBiZSBlcXVhbCB0byBBc3NldDIJAAACAAAAAQIAAAApbGlxdWlkaXR5IGlzIGN1cnJlbnRseSB1bmRlciBtYWludGVuYW5jZS4JAAACAAAAAQIAAAAkZEFwcCBpcyBjdXJyZW50bHkgdW5kZXIgbWFpbnRlbmFuY2UuAAAAAWkBAAAABHN3YXAAAAACAAAABkFzc2V0MQAAAAZBc3NldDIEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHYWNXYXZlcwkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwUAAAAGYVdhdmVzBAAAAAVwb3dlcgkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwUAAAACYWMEAAAADHN3YXBBY3RpdmF0ZQkBAAAAEUBleHRyTmF0aXZlKDEwNTEpAAAAAgUAAAAEdGhpcwUAAAAGc3dhcEFjBAAAAAdwb29sS2V5CQEAAAACa3AAAAACBQAAAAZBc3NldDEFAAAABkFzc2V0MgQAAAADa2V5CQEAAAAKdmFsaWRQb29sSwAAAAEFAAAAB3Bvb2xLZXkEAAAABmFzc2V0MQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAEVVNETgkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAAR1c2RuBAAAAARVU0RDCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAABHVzZGMEAAAABFVTRFQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAEdXNkdAQAAAAETkdOTgkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAARuZ25uBAAAAAlNYWluQXNzZXQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAAEbWFpbgQAAAAERVVSTgkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzBQAAAARldXJuBAAAAAt0b3RhbEFzc2V0MQkBAAAADnRvdGFsQXNzZXRQb29sAAAAAgkAASwAAAACCQABLAAAAAIJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyAgAAAAFfBQAAAAZBc3NldDEHBAAAAAt0b3RhbEFzc2V0MgkBAAAADnRvdGFsQXNzZXRQb29sAAAAAgkAASwAAAACCQABLAAAAAIJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyAgAAAAFfBQAAAAZBc3NldDIHBAAAABFmZWVSYXRlUGVyY2VudHVhbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAHcmF0ZUZlZQMFAAAABXBvd2VyAwkBAAAAASEAAAABBQAAAAxzd2FwQWN0aXZhdGUDAwkBAAAAASEAAAABCQAAAAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyAwkBAAAADXZhbGlkYXRlQXNzZXQAAAADBQAAAAZhc3NldDEFAAAABkFzc2V0MQUAAAAHYWNXYXZlcwYJAQAAAA12YWxpZGF0ZUFzc2V0AAAAAwUAAAAGYXNzZXQxBQAAAAZBc3NldDIFAAAAB2FjV2F2ZXMHAwMDAwMDAwkAAAAAAAACBQAAAAZhc3NldDEFAAAABFVTRE4GCQAAAAAAAAIFAAAABmFzc2V0MQUAAAAEVVNEQwYJAAAAAAAAAgUAAAAGYXNzZXQxBQAAAARVU0RUBgkAAAAAAAACBQAAAAZhc3NldDEFAAAABE5HTk4GCQAAAAAAAAIFAAAABmFzc2V0MQUAAAAJTWFpbkFzc2V0BgkAAAAAAAACBQAAAAZhc3NldDEFAAAABEVVUk4GCQAAAAAAAAIFAAAABmFzc2V0MQUAAAAFV0FWRVMDCQEAAAACIT0AAAACBQAAAANrZXkHAwkAAAAAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAdhc3NldElkBQAAAAlNYWluQXNzZXQDCQAAAAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAABmFtb3VudAAAAAAAAAST4AQAAAAKdmFsdWVBc3NldAMJAQAAAAEhAAAAAQkAAAAAAAACBQAAAAZhc3NldDEJAAJZAAAAAQUAAAAGQXNzZXQxCQAAaQAAAAIFAAAAC3RvdGFsQXNzZXQxBQAAAAt0b3RhbEFzc2V0MgkAAGkAAAACBQAAAAt0b3RhbEFzc2V0MgUAAAALdG90YWxBc3NldDEEAAAACG5ld1ZhbHVlCQAAZQAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAkAAGkAAAACCQAAaAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAUAAAARZmVlUmF0ZVBlcmNlbnR1YWwJAABoAAAAAgAAAAAAAAAAZAUAAAACRDgEAAAACXNlbmRWYWx1ZQkAAGgAAAACBQAAAAhuZXdWYWx1ZQUAAAAKdmFsdWVBc3NldAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMFAAAACXNlbmRWYWx1ZQMJAAAAAAAAAgUAAAAGQXNzZXQyBQAAAAV3YXZlcwUAAAAFV0FWRVMJAAJZAAAAAQUAAAAGQXNzZXQyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAZBc3NldDIJAABlAAAAAgkBAAAAE2dldEFtb3VudEJsb2NrQXNzZXQAAAABBQAAAAZBc3NldDIFAAAACXNlbmRWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyAgAAAAFfBQAAAAZBc3NldDIJAABlAAAAAgkBAAAABmFzc2V0UAAAAAIJAQAAAAJrcAAAAAIFAAAABkFzc2V0MQUAAAAGQXNzZXQyBQAAAAZBc3NldDIFAAAACXNlbmRWYWx1ZQUAAAADbmlsCQAAAgAAAAECAAAANVN3YXAgZGVuaWVkISAwLjAwMyBBeEFpIGlzIHJlcXVpcmVkIGZvciB0aGUgc3dhcCBmZWUuCQAAAgAAAAECAAAAEkludmFsaWQgcmF0ZSBhc3NldAkAAAIAAAABAgAAABFJbnZhbGlkIFN3YXAgS2V5LgkAAAIAAAABAgAAABlJbnZhbGlkIEFzc2V0MSBvciBBc3NldDIhCQAAAgAAAAECAAAAIEFzc2V0MSBjYW5ub3QgYmUgZXF1YWwgdG8gQXNzZXQyCQAAAgAAAAECAAAAJFN3YXAgaXMgY3VycmVudGx5IHVuZGVyIG1haW50ZW5hbmNlLgkAAAIAAAABAgAAACRkQXBwIGlzIGN1cnJlbnRseSB1bmRlciBtYWludGVuYW5jZS4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIEAAAABW9yZGVyBQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATRXhjaGFuZ2VUcmFuc2FjdGlvbgQAAAABZQUAAAAHJG1hdGNoMAYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5WComtw==", "height": 2133055, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3muUGs4Na5XBhqVNdU4BXpjsfdiThwnLWMtWq3xXDvtV Next: 52xtxcxqtxjDQ24k62MQnAQfzmMCLVgRjC5G7QyJgEwx Diff:
OldNewDifferences
2121
2222 let j = 1000000
2323
24-let k = Address(this.bytes)
25-
26-let l = 5
27-
28-func m (n) = toString(valueOrErrorMessage(addressFromString(n), (("Can't parse " + n) + " as address")))
24+func k (l) = toString(valueOrErrorMessage(addressFromString(l), (("Can't parse " + l) + " as address")))
2925
3026
31-func o (p) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(p))).id, (("Asset Id: " + p) + " is invalid.")))
27+func m (n) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(n))).id, (("Asset Id: " + n) + " is invalid.")))
3228
3329
34-func q (p) = {
35- let r = getInteger(this, p)
36- if ($isInstanceOf(r, "Int"))
30+func o (n) = {
31+ let p = getInteger(this, n)
32+ if ($isInstanceOf(p, "Int"))
3733 then {
38- let s = r
39- s
34+ let q = p
35+ q
4036 }
4137 else 0
4238 }
4339
4440
45-func t (p) = {
46- let r = assetInfo(p)
47- if ($isInstanceOf(r, "Asset"))
41+func r (n) = {
42+ let p = assetInfo(n)
43+ if ($isInstanceOf(p, "Asset"))
4844 then {
49- let u = r
50- u.name
45+ let s = p
46+ s.name
5147 }
5248 else throw("Can't find asset")
5349 }
5450
5551
56-let v = "activate"
52+let t = "activate"
5753
58-let w = "activate_pools"
54+let u = "activate_pools"
5955
60-let x = "activate_swap"
56+let v = "activate_swap"
6157
62-let y = "activate_liquidity"
58+let w = "activate_liquidity"
6359
64-let z = "block_distribuition"
60+let x = "block_distribuition"
6561
66-let A = "Total_Tokens_Locked_"
62+let y = "Total_Tokens_Locked_"
6763
68-let B = "usdn_asset"
64+let z = "usdn_asset"
6965
70-let C = "usdt_asset"
66+let A = "usdt_asset"
7167
72-let D = "usdc_asset"
68+let B = "usdc_asset"
7369
74-let E = "ngnn_asset"
70+let C = "ngnn_asset"
7571
76-let F = "eurn_asset"
72+let D = "eurn_asset"
7773
78-let G = "WAVES"
74+let E = "WAVES"
7975
80-let H = "accept_waves"
76+let F = "accept_waves"
8177
82-let I = unit
78+let G = unit
8379
84-func J (K,L) = (((c + K) + "_") + L)
80+func H (I,J) = (((c + I) + "_") + J)
8581
8682
87-func M (N) = {
88- let r = getInteger(this, N)
89- if ($isInstanceOf(r, "Int"))
83+func K (L) = {
84+ let p = getInteger(this, L)
85+ if ($isInstanceOf(p, "Int"))
9086 then {
91- let s = r
92- s
87+ let q = p
88+ q
89+ }
90+ else false
91+ }
92+
93+
94+func M (l,L) = {
95+ let p = getInteger(this, ((L + "_") + l))
96+ if ($isInstanceOf(p, "Int"))
97+ then {
98+ let N = p
99+ N
93100 }
94101 else 0
95102 }
96103
97104
98-func O (n,N) = {
99- let r = getInteger(this, ((N + "_") + n))
100- if ($isInstanceOf(r, "Int"))
105+func O (l,L,s) = {
106+ let p = getInteger(this, ((((l + "_") + L) + "_") + s))
107+ if ($isInstanceOf(p, "Int"))
101108 then {
102- let P = r
109+ let P = p
103110 P
104111 }
105112 else 0
106113 }
107114
108115
109-func Q (n,N,u) = {
110- let r = getInteger(this, ((((n + "_") + N) + "_") + u))
111- if ($isInstanceOf(r, "Int"))
116+func Q (L,s) = {
117+ let p = getInteger(this, ((L + "_") + s))
118+ if ($isInstanceOf(p, "Int"))
112119 then {
113- let R = r
114- R
120+ let P = p
121+ P
122+ }
123+ else 1
124+ }
125+
126+
127+func R (S,T,l) = (((h + H(S, T)) + "_") + l)
128+
129+
130+func U (l,L) = {
131+ let p = getInteger(this, ((("STAKE_LP_" + l) + "_") + L))
132+ if ($isInstanceOf(p, "Int"))
133+ then {
134+ let P = p
135+ P
115136 }
116137 else 0
117138 }
118139
119140
120-func S (N,u) = {
121- let r = getInteger(this, ((N + "_") + u))
122- if ($isInstanceOf(r, "Int"))
141+func V () = {
142+ let p = getString(this, "admin")
143+ if ($isInstanceOf(p, "String"))
123144 then {
124- let R = r
125- R
126- }
127- else 1
128- }
129-
130-
131-func T (U,V,n) = (((h + J(U, V)) + "_") + n)
132-
133-
134-func W (n,N) = {
135- let r = getInteger(this, ((("STAKE_LP_" + n) + "_") + N))
136- if ($isInstanceOf(r, "Int"))
137- then {
138- let R = r
139- R
140- }
141- else 0
142- }
143-
144-
145-func X () = {
146- let r = getString(this, "admin")
147- if ($isInstanceOf(r, "String"))
148- then {
149- let P = r
150- Address(fromBase58String(P))
145+ let N = p
146+ Address(fromBase58String(N))
151147 }
152148 else this
153149 }
154150
155151
156-func Y (Z,aa,ab) = if (if ((Z == I))
157- then (aa == "WAVES")
152+func W (X,Y,Z) = if (if ((X == G))
153+ then (Y == "WAVES")
158154 else false)
159- then if (ab)
155+ then if (Z)
160156 then true
161157 else throw("The smart contract does not currently support Waves.")
162- else if ((Z == fromBase58String(aa)))
158+ else if ((X == fromBase58String(Y)))
163159 then true
164160 else false
165161
166162
167-func ac (N,ad) = {
168- let r = getInteger(this, N)
169- if ($isInstanceOf(r, "Int"))
163+func aa (L,ab) = {
164+ let p = getInteger(this, L)
165+ if ($isInstanceOf(p, "Int"))
170166 then {
171- let R = r
172- R
167+ let P = p
168+ P
173169 }
174- else if (ad)
170+ else if (ab)
175171 then (1 * i)
176172 else 1
177173 }
178174
179175
180-@Callable(s)
181-func constructor (ae,af,ag,ah,ai,aj,ak,al,am) = if (if ((s.caller == this))
176+@Callable(q)
177+func constructor (ac,ad,ae,af,ag,ah,ai,aj,ak) = if (if ((q.caller == this))
182178 then true
183- else (s.caller == X()))
179+ else (q.caller == V()))
184180 then {
185- let an = J(af, ag)
186- let ao = J(af, ah)
187- let ap = J(af, ai)
188- let aq = J(af, G)
189- let ar = J(af, ae)
190- let as = J(af, aj)
191- let at = J(ah, ag)
192- let au = J(ah, ai)
193- let av = J(ah, G)
194- let aw = J(ah, ae)
195- let ax = J(ah, aj)
196- let ay = J(ag, ai)
197- let az = J(ag, G)
198- let aA = J(ag, ae)
199- let aB = J(ag, aj)
200- let aC = J(ai, G)
201- let aD = J(ai, ae)
202- let aE = J(ai, aj)
203- let aF = J(ae, G)
204- let aG = J(ae, aj)
205- let aH = J(aj, G)
206-[StringEntry(a, ae), StringEntry(B, af), StringEntry(D, ah), StringEntry(C, ag), StringEntry(E, ai), BooleanEntry(H, am), IntegerEntry(g, ak), BooleanEntry(v, true), BooleanEntry(x, false), BooleanEntry(w, false), BooleanEntry(y, false), IntegerEntry(z, al), IntegerEntry(an, 1), IntegerEntry(aq, 1), IntegerEntry(ao, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(at, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(aA, 1), IntegerEntry(ay, 1), IntegerEntry(az, 1), IntegerEntry(aC, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aH, 1), IntegerEntry(aG, 1), IntegerEntry(aE, 1), IntegerEntry(ax, 1), IntegerEntry(as, 1), IntegerEntry(aB, 1), StringEntry(F, aj)]
181+ let al = H(ad, ae)
182+ let am = H(ad, af)
183+ let an = H(ad, ag)
184+ let ao = H(ad, E)
185+ let ap = H(ad, ac)
186+ let aq = H(ad, ah)
187+ let ar = H(af, ae)
188+ let as = H(af, ag)
189+ let at = H(af, E)
190+ let au = H(af, ac)
191+ let av = H(af, ah)
192+ let aw = H(ae, ag)
193+ let ax = H(ae, E)
194+ let ay = H(ae, ac)
195+ let az = H(ae, ah)
196+ let aA = H(ag, E)
197+ let aB = H(ag, ac)
198+ let aC = H(ag, ah)
199+ let aD = H(ac, E)
200+ let aE = H(ac, ah)
201+ let aF = H(ah, E)
202+[StringEntry(a, ac), StringEntry(z, ad), StringEntry(B, af), StringEntry(A, ae), StringEntry(C, ag), BooleanEntry(F, ak), IntegerEntry(g, ai), BooleanEntry(t, true), BooleanEntry(v, false), BooleanEntry(u, false), BooleanEntry(w, false), IntegerEntry(x, aj), IntegerEntry(al, 1), IntegerEntry(ao, 1), IntegerEntry(am, 1), IntegerEntry(an, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(as, 1), IntegerEntry(at, 1), IntegerEntry(ay, 1), IntegerEntry(aw, 1), IntegerEntry(ax, 1), IntegerEntry(aA, 1), IntegerEntry(aB, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aE, 1), IntegerEntry(aC, 1), IntegerEntry(av, 1), IntegerEntry(aq, 1), IntegerEntry(az, 1), StringEntry(D, ah)]
207203 }
208204 else throw("Only the Admin itself can invoke this function")
209205
210206
211207
212-@Callable(s)
213-func activate (aI) = if (if ((s.caller == this))
208+@Callable(q)
209+func activate (aG) = if (if ((q.caller == this))
214210 then true
215- else (s.caller == X()))
216- then [BooleanEntry(v, aI)]
211+ else (q.caller == V()))
212+ then [BooleanEntry(t, aG)]
217213 else throw("Only the Admin itself can invoke this function")
218214
219215
220216
221-@Callable(s)
222-func maintenance (aJ,aK,aL) = if (if ((s.caller == this))
217+@Callable(q)
218+func maintenance (aH,aI,aJ) = if (if ((q.caller == this))
223219 then true
224- else (s.caller == X()))
225- then [BooleanEntry(w, aJ), BooleanEntry(x, aK), BooleanEntry(y, aL)]
220+ else (q.caller == V()))
221+ then [BooleanEntry(u, aH), BooleanEntry(v, aI), BooleanEntry(w, aJ)]
226222 else throw("Only the Admin itself can invoke this function")
227223
228224
229225
230-@Callable(s)
231-func percentualRateFeeSwapEdit (aM) = if (if ((s.caller == this))
226+@Callable(q)
227+func percentualRateFeeSwapEdit (aK) = if (if ((q.caller == this))
232228 then true
233- else (s.caller == X()))
234- then [IntegerEntry(g, aM)]
229+ else (q.caller == V()))
230+ then [IntegerEntry(g, aK)]
235231 else throw("Only the Admin itself can invoke this function")
236232
237233
238234
239-@Callable(s)
240-func acceptWaves (aN) = if (if ((s.caller == this))
235+@Callable(q)
236+func acceptWaves (aL) = if (if ((q.caller == this))
241237 then true
242- else (s.caller == X()))
243- then [BooleanEntry(H, aN)]
238+ else (q.caller == V()))
239+ then [BooleanEntry(F, aL)]
244240 else throw("Only the Admin itself can invoke this function")
245241
246242
247243
248-@Callable(s)
249-func blockDistribution (aO) = if (if ((s.caller == this))
244+@Callable(q)
245+func blockDistribution (aM) = if (if ((q.caller == this))
250246 then true
251- else (s.caller == X()))
252- then [IntegerEntry(z, aO)]
247+ else (q.caller == V()))
248+ then [IntegerEntry(x, aM)]
253249 else throw("Only the Admin itself can invoke this function")
254250
255251
256252
257-@Callable(s)
258-func addAdmin (n) = if (if ((s.caller == this))
253+@Callable(q)
254+func addAdmin (l) = if (if ((q.caller == this))
259255 then true
260- else (s.caller == X()))
261- then [StringEntry("admin", n)]
256+ else (q.caller == V()))
257+ then [StringEntry("admin", l)]
262258 else throw("Only the Admin itself can invoke this function")
263259
264260
265261
266-@Callable(s)
267-func lpAssetCreateForPairPool (K,L,aP,aQ) = {
268- let aR = if ((K == G))
269- then G
270- else t(fromBase58String(K))
271- let aS = if ((L == G))
272- then G
273- else t(fromBase58String(L))
274- let aT = if (aQ)
275- then aP
276- else ((aR + "_") + aS)
277- let N = M(J(K, L))
278- if (if ((s.caller == this))
262+@Callable(q)
263+func lpAssetCreateForPairPool (I,J,aN,aO) = {
264+ let aP = if ((I == E))
265+ then E
266+ else r(fromBase58String(I))
267+ let aQ = if ((J == E))
268+ then E
269+ else r(fromBase58String(J))
270+ let aR = if (aO)
271+ then aN
272+ else ((aP + "_") + aQ)
273+ let L = K(H(I, J))
274+ if (if ((q.caller == this))
279275 then true
280- else (s.caller == X()))
281- then if (!((N == 0)))
276+ else (q.caller == V()))
277+ then if ((L != false))
282278 then {
283- let aU = Issue(aT, ((("LP asset for pool liquidity in AxAi Swap pair " + K) + "_") + L), 1, 8, true)
284- let aV = calculateAssetId(aU)
285-[StringEntry((b + J(K, L)), toBase58String(aV)), aU]
279+ let aS = Issue(aR, ((("LP asset for pool liquidity in AxAi Swap pair " + I) + "_") + J), 1, 8, true)
280+ let aT = calculateAssetId(aS)
281+[StringEntry((b + H(I, J)), toBase58String(aT)), aS]
286282 }
287283 else throw("Invalid Pool Key. Try inverting the assets")
288284 else throw("Only the Admin itself can invoke this function")
290286
291287
292288
293-@Callable(s)
294-func deposit (aW,U,V) = {
295- let aX = getBooleanValue(this, v)
296- let aY = getBooleanValue(this, y)
297- let aZ = getStringValue(this, a)
298- let ba = if (aW)
299- then getStringValue(this, (b + J(U, V)))
300- else aZ
301- if (aX)
302- then if (!(aY))
303- then if ((s.payments[0].assetId != fromBase58String(ba)))
304- then throw((("Invalid asset! Kindly Deposit Only " + aZ) + " or valid asset lp"))
305- else if (!(aW))
289+@Callable(q)
290+func deposit (aU,S,T) = {
291+ let aV = getBooleanValue(this, t)
292+ let aW = getBooleanValue(this, w)
293+ let aX = getStringValue(this, a)
294+ let aY = if (aU)
295+ then getStringValue(this, (b + H(S, T)))
296+ else aX
297+ if (aV)
298+ then if (!(aW))
299+ then if ((q.payments[0].assetId != fromBase58String(aY)))
300+ then throw((("Invalid asset! Kindly Deposit Only " + aX) + " or valid asset lp"))
301+ else if (!(aU))
306302 then {
307- let bb = toBase58String(s.caller.bytes)
308- let bc = {
309- let r = getInteger(this, bb)
310- if ($isInstanceOf(r, "Int"))
303+ let aZ = toBase58String(q.caller.bytes)
304+ let ba = {
305+ let p = getInteger(this, aZ)
306+ if ($isInstanceOf(p, "Int"))
311307 then {
312- let R = r
313- R
308+ let P = p
309+ P
314310 }
315311 else 0
316312 }
317- let bd = (bc + s.payments[0].amount)
318- let be = IntegerEntry(bb, bd)
319- let bf = IntegerEntry((h + bb), height)
320- let bg = {
321- let r = getInteger(this, "Total_Tokens_Locked:")
322- if ($isInstanceOf(r, "Int"))
313+ let bb = (ba + q.payments[0].amount)
314+ let bc = IntegerEntry(aZ, bb)
315+ let bd = IntegerEntry((h + aZ), height)
316+ let be = {
317+ let p = getInteger(this, "Total_Tokens_Locked:")
318+ if ($isInstanceOf(p, "Int"))
323319 then {
324- let R = r
325- R
320+ let P = p
321+ P
326322 }
327323 else 0
328324 }
329- let bh = (bg + s.payments[0].amount)
330- let bi = IntegerEntry("Total_Tokens_Locked:", bh)
331-[be, bf, bi]
325+ let bf = (be + q.payments[0].amount)
326+ let bg = IntegerEntry("Total_Tokens_Locked:", bf)
327+[bc, bd, bg]
332328 }
333329 else {
334- let bj = J(U, V)
335- let N = M(bj)
336- if (!((N == 0)))
330+ let bh = H(S, T)
331+ let L = K(bh)
332+ if ((L != false))
337333 then {
338- let bb = toBase58String(s.caller.bytes)
339- let bc = {
340- let r = getInteger(this, ((("STAKE_LP_" + bb) + "_") + bj))
341- if ($isInstanceOf(r, "Int"))
334+ let aZ = toBase58String(q.caller.bytes)
335+ let ba = {
336+ let p = getInteger(this, ((("STAKE_LP_" + aZ) + "_") + bh))
337+ if ($isInstanceOf(p, "Int"))
342338 then {
343- let R = r
344- R
339+ let P = p
340+ P
345341 }
346342 else 0
347343 }
348- let bd = (bc + s.payments[0].amount)
349- let be = IntegerEntry(((("STAKE_LP_" + bb) + "_") + bj), bd)
350- let bf = IntegerEntry(((((h + "_") + bb) + "_") + bj), height)
351- let bg = {
352- let r = getInteger(this, ("Total_Tokens_LP_Locked_" + bj))
353- if ($isInstanceOf(r, "Int"))
344+ let bb = (ba + q.payments[0].amount)
345+ let bc = IntegerEntry(((("STAKE_LP_" + aZ) + "_") + bh), bb)
346+ let bd = IntegerEntry(((((h + "_") + aZ) + "_") + bh), height)
347+ let be = {
348+ let p = getInteger(this, ("Total_Tokens_LP_Locked_" + bh))
349+ if ($isInstanceOf(p, "Int"))
354350 then {
355- let R = r
356- R
351+ let P = p
352+ P
357353 }
358354 else 0
359355 }
360- let bh = (bg + s.payments[0].amount)
361- let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
362-[be, bf, bi]
356+ let bf = (be + q.payments[0].amount)
357+ let bg = IntegerEntry(("Total_Tokens_LP_Locked_" + bh), bf)
358+[bc, bd, bg]
363359 }
364360 else throw("Invalid Pool key.")
365361 }
369365
370366
371367
372-@Callable(s)
373-func remove (aW,U,V,bk) = {
374- let aX = getBooleanValue(this, v)
375- let aY = getBooleanValue(this, y)
376- let bl = s.payments[0]
377- let aZ = fromBase58String(getStringValue(this, a))
378- if (aX)
379- then if (!(aY))
368+@Callable(q)
369+func remove (aU,S,T,bi) = {
370+ let aV = getBooleanValue(this, t)
371+ let aW = getBooleanValue(this, w)
372+ let bj = q.payments[0]
373+ let aX = fromBase58String(getStringValue(this, a))
374+ if (aV)
375+ then if (!(aW))
380376 then {
381- let bb = toBase58String(s.caller.bytes)
382- let bc = {
383- let r = if (aW)
384- then getIntegerValue(this, ((("STAKE_LP_" + bb) + "_") + J(U, V)))
385- else getIntegerValue(this, bb)
386- if ($isInstanceOf(r, "Int"))
377+ let aZ = toBase58String(q.caller.bytes)
378+ let ba = {
379+ let p = if (aU)
380+ then getIntegerValue(this, ((("STAKE_LP_" + aZ) + "_") + H(S, T)))
381+ else getIntegerValue(this, aZ)
382+ if ($isInstanceOf(p, "Int"))
387383 then {
388- let R = r
389- R
384+ let P = p
385+ P
390386 }
391387 else 0
392388 }
393- let bm = if (aW)
394- then ((((h + "_") + bb) + "_") + J(U, V))
395- else (h + bb)
396- let bg = if (aW)
397- then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + J(U, V)))
389+ let bk = if (aU)
390+ then ((((h + "_") + aZ) + "_") + H(S, T))
391+ else (h + aZ)
392+ let be = if (aU)
393+ then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + H(S, T)))
398394 else getIntegerValue(this, "Total_Tokens_Locked:")
399- let bh = (bg - bk)
400- let bn = (height - getIntegerValue(this, bm))
401- let bo = getIntegerValue(this, z)
402- let bp = ((bn * bo) * i)
403- let bq = (bp / (bg / bk))
404- if ((0 > bk))
405- then throw(if (aW)
406- then (((("Can't withdraw negative " + U) + "/") + V) + " amount")
395+ let bf = (be - bi)
396+ let bl = (height - getIntegerValue(this, bk))
397+ let bm = getIntegerValue(this, x)
398+ let bn = ((bl * bm) * i)
399+ let bo = (bn / (be / bi))
400+ if ((0 > bi))
401+ then throw(if (aU)
402+ then (((("Can't withdraw negative " + S) + "/") + T) + " amount")
407403 else "Can't withdraw negative AxAi amount")
408404 else {
409- let bd = (bc - bk)
410- if ((0 > bd))
411- then throw(if (aW)
412- then (((("Not enough Asset Lp " + U) + "/") + V) + " balance")
405+ let bb = (ba - bi)
406+ if ((0 > bb))
407+ then throw(if (aU)
408+ then (((("Not enough Asset Lp " + S) + "/") + T) + " balance")
413409 else "Not enough AxAi balance")
414- else [IntegerEntry(if (aW)
415- then ((("STAKE_LP_" + bb) + "_") + J(U, V))
416- else bb, bd), IntegerEntry(if (aW)
417- then ("Total_Tokens_LP_Locked_" + J(U, V))
418- else "Total_Tokens_Locked:", bh), ScriptTransfer(s.caller, bk, if (aW)
419- then fromBase58String(getStringValue(this, (b + J(U, V))))
420- else aZ), ScriptTransfer(s.caller, bq, aZ)]
410+ else [IntegerEntry(if (aU)
411+ then ((("STAKE_LP_" + aZ) + "_") + H(S, T))
412+ else aZ, bb), IntegerEntry(if (aU)
413+ then ("Total_Tokens_LP_Locked_" + H(S, T))
414+ else "Total_Tokens_Locked:", bf), ScriptTransfer(q.caller, bi, if (aU)
415+ then fromBase58String(getStringValue(this, (b + H(S, T))))
416+ else aX), ScriptTransfer(q.caller, bo, aX)]
421417 }
422418 }
423419 else throw("liquidity is currently under maintenance.")
426422
427423
428424
429-@Callable(s)
430-func addLiquidity (U,V) = {
431- let aX = getBooleanValue(this, v)
432- let br = getBooleanValue(this, w)
433- let ab = getBooleanValue(this, H)
434- let N = M(J(U, V))
435- let K = s.payments[0].assetId
436- let L = s.payments[1].assetId
437- let bs = fromBase58String(getStringValue(this, B))
438- let bt = fromBase58String(getStringValue(this, D))
439- let bu = fromBase58String(getStringValue(this, C))
440- let bv = fromBase58String(getStringValue(this, E))
441- let bw = fromBase58String(getStringValue(this, F))
442- let aZ = fromBase58String(getStringValue(this, a))
443- let ba = getStringValue(this, (b + J(U, V)))
444- let bx = ac(((J(U, V) + "_") + U), false)
445- let by = ac(((J(U, V) + "_") + V), false)
446- let bz = (bx / by)
447- let bA = (by / bx)
448- if (aX)
449- then if (!(br))
450- then if (if (if (!((K == L)))
451- then Y(K, U, ab)
425+@Callable(q)
426+func addLiquidity (S,T) = {
427+ let aV = getBooleanValue(this, t)
428+ let bp = getBooleanValue(this, u)
429+ let Z = getBooleanValue(this, F)
430+ let L = K(H(S, T))
431+ let I = q.payments[0].assetId
432+ let J = q.payments[1].assetId
433+ let bq = fromBase58String(getStringValue(this, z))
434+ let br = fromBase58String(getStringValue(this, B))
435+ let bs = fromBase58String(getStringValue(this, A))
436+ let bt = fromBase58String(getStringValue(this, C))
437+ let bu = fromBase58String(getStringValue(this, D))
438+ let aX = fromBase58String(getStringValue(this, a))
439+ let aY = getStringValue(this, (b + H(S, T)))
440+ let bv = aa(((H(S, T) + "_") + S), false)
441+ let bw = aa(((H(S, T) + "_") + T), false)
442+ let bx = (bv / bw)
443+ let by = (bw / bv)
444+ if (aV)
445+ then if (!(bp))
446+ then if (if (if (!((I == J)))
447+ then W(I, S, Z)
452448 else false)
453- then Y(L, V, ab)
449+ then W(J, T, Z)
454450 else false)
455- then if (if (if (if (if (if (if (if ((K == bs))
451+ then if (if (if (if (if (if (if (if ((I == bq))
456452 then true
457- else (K == bt))
453+ else (I == br))
458454 then true
459- else (K == bu))
455+ else (I == bs))
460456 then true
461- else (K == bv))
457+ else (I == bt))
462458 then true
463- else (K == aZ))
459+ else (I == aX))
464460 then true
465- else (K == I))
461+ else (I == G))
466462 then true
467- else (K == bw))
468- then if (if (if (if (if (if ((L == bs))
463+ else (I == bu))
464+ then if (if (if (if (if (if ((J == bq))
469465 then true
470- else (L == bt))
466+ else (J == br))
471467 then true
472- else (L == bu))
468+ else (J == bs))
473469 then true
474- else (L == bv))
470+ else (J == bt))
475471 then true
476- else (L == aZ))
472+ else (J == aX))
477473 then true
478- else (L == I))
474+ else (J == G))
479475 then true
480- else (L == bw)
476+ else (J == bu)
481477 else false)
482- then if (!((N == 0)))
483- then if (if ((bz == (s.payments[0].amount / s.payments[1].amount)))
484- then (bA == (s.payments[1].amount / s.payments[0].amount))
478+ then if ((L != false))
479+ then if (if ((bx == (q.payments[0].amount / q.payments[1].amount)))
480+ then (by == (q.payments[1].amount / q.payments[0].amount))
485481 else false)
486482 then {
487- let bb = toBase58String(s.caller.bytes)
488- let bc = O(bb, J(U, V))
489- let bB = Q(bb, J(U, V), U)
490- let bC = Q(bb, J(U, V), V)
491- let bD = S(J(U, V), U)
492- let bE = S(J(U, V), V)
493- let bF = (((by * (s.payments[0].amount / s.payments[1].amount)) / 10) * i)
494- let bG = (bB + s.payments[0].amount)
495- let bH = (bC + s.payments[1].amount)
496- let bI = (bc + bF)
497- let bJ = (bD + s.payments[0].amount)
498- let bK = (bE + s.payments[1].amount)
499-[Reissue(fromBase58String(ba), bF, true), ScriptTransfer(Address(s.caller.bytes), bF, fromBase58String(ba)), IntegerEntry(T(U, V, bb), height), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + U), bG), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + V), bH), IntegerEntry(((J(U, V) + "_") + bb), bI), IntegerEntry(((J(U, V) + "_") + U), bJ), IntegerEntry(((J(U, V) + "_") + V), bK), IntegerEntry(U, (q(U) + s.payments[0].amount)), IntegerEntry(V, (q(V) + s.payments[1].amount)), IntegerEntry(ba, (q(ba) + bF))]
483+ let aZ = toBase58String(q.caller.bytes)
484+ let ba = M(aZ, H(S, T))
485+ let bz = O(aZ, H(S, T), S)
486+ let bA = O(aZ, H(S, T), T)
487+ let bB = Q(H(S, T), S)
488+ let bC = Q(H(S, T), T)
489+ let bD = (((bw * (q.payments[0].amount / q.payments[1].amount)) / 10) * i)
490+ let bE = (bz + q.payments[0].amount)
491+ let bF = (bA + q.payments[1].amount)
492+ let bG = (ba + bD)
493+ let bH = (bB + q.payments[0].amount)
494+ let bI = (bC + q.payments[1].amount)
495+[Reissue(fromBase58String(aY), bD, true), ScriptTransfer(Address(q.caller.bytes), bD, fromBase58String(aY)), IntegerEntry(R(S, T, aZ), height), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + S), bE), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + T), bF), IntegerEntry(((H(S, T) + "_") + aZ), bG), IntegerEntry(((H(S, T) + "_") + S), bH), IntegerEntry(((H(S, T) + "_") + T), bI), IntegerEntry(S, (o(S) + q.payments[0].amount)), IntegerEntry(T, (o(T) + q.payments[1].amount)), IntegerEntry(aY, (o(aY) + bD))]
500496 }
501497 else throw("Payment of invalid 1/1 amounts to the Pool.")
502498 else throw("Invalid Pool Key.")
508504
509505
510506
511-@Callable(s)
512-func removeLiquidity (U,V,bL) = {
513- let bb = toBase58String(s.caller.bytes)
514- let aX = getBooleanValue(this, v)
515- let br = getBooleanValue(this, w)
516- let ab = getBooleanValue(this, H)
517- let bj = J(U, V)
518- let N = M(bj)
519- let K = if ((U == G))
520- then if (ab)
521- then I
507+@Callable(q)
508+func removeLiquidity (S,T,bJ) = {
509+ let aZ = toBase58String(q.caller.bytes)
510+ let aV = getBooleanValue(this, t)
511+ let bp = getBooleanValue(this, u)
512+ let Z = getBooleanValue(this, F)
513+ let bh = H(S, T)
514+ let L = K(bh)
515+ let I = if ((S == E))
516+ then if (Z)
517+ then G
522518 else throw("The smart contract does not currently support Waves.")
523- else fromBase58String(U)
524- let L = if ((V == G))
525- then if (ab)
526- then I
519+ else fromBase58String(S)
520+ let J = if ((T == E))
521+ then if (Z)
522+ then G
527523 else throw("The smart contract does not currently support Waves.")
528- else fromBase58String(V)
529- let bs = fromBase58String(getStringValue(this, B))
530- let bt = fromBase58String(getStringValue(this, D))
531- let bu = fromBase58String(getStringValue(this, C))
532- let bv = fromBase58String(getStringValue(this, E))
533- let aZ = fromBase58String(getStringValue(this, a))
534- let bw = fromBase58String(getStringValue(this, F))
535- let ba = getStringValue(this, (b + J(U, V)))
536- let bc = O(bb, J(U, V))
537- let bM = W(bb, bj)
538- let bN = getIntegerValue(this, ba)
539- let bx = ac(((J(U, V) + "_") + U), false)
540- let by = ac(((J(U, V) + "_") + V), false)
541- if (aX)
542- then if (!(br))
543- then if (!((U == V)))
544- then if (if (if (if (if (if (if (if ((K == bs))
524+ else fromBase58String(T)
525+ let bq = fromBase58String(getStringValue(this, z))
526+ let br = fromBase58String(getStringValue(this, B))
527+ let bs = fromBase58String(getStringValue(this, A))
528+ let bt = fromBase58String(getStringValue(this, C))
529+ let aX = fromBase58String(getStringValue(this, a))
530+ let bu = fromBase58String(getStringValue(this, D))
531+ let aY = getStringValue(this, (b + H(S, T)))
532+ let ba = M(aZ, H(S, T))
533+ let bK = U(aZ, bh)
534+ let bL = getIntegerValue(this, aY)
535+ let bv = aa(((H(S, T) + "_") + S), false)
536+ let bw = aa(((H(S, T) + "_") + T), false)
537+ if (aV)
538+ then if (!(bp))
539+ then if (!((S == T)))
540+ then if (if (if (if (if (if (if (if ((I == bq))
545541 then true
546- else (K == bt))
542+ else (I == br))
547543 then true
548- else (K == bu))
544+ else (I == bs))
549545 then true
550- else (K == bv))
546+ else (I == bt))
551547 then true
552- else (K == aZ))
548+ else (I == aX))
553549 then true
554- else (K == I))
550+ else (I == G))
555551 then true
556- else (K == bw))
557- then if (if (if (if (if (if ((L == bs))
552+ else (I == bu))
553+ then if (if (if (if (if (if ((J == bq))
558554 then true
559- else (L == bt))
555+ else (J == br))
560556 then true
561- else (L == bu))
557+ else (J == bs))
562558 then true
563- else (L == bv))
559+ else (J == bt))
564560 then true
565- else (L == aZ))
561+ else (J == aX))
566562 then true
567- else (L == I))
563+ else (J == G))
568564 then true
569- else (L == bw)
565+ else (J == bu)
570566 else false)
571- then if (!((N == 0)))
572- then if (!((bc == 0)))
573- then if (((bc - bM) >= bL))
567+ then if ((L != false))
568+ then if (!((ba == 0)))
569+ then if (((ba - bK) >= bJ))
574570 then {
575- let bO = (bL / bN)
576- let bP = (bO * bx)
577- let bQ = (bO * by)
578- let bD = S(J(U, V), U)
579- let bE = S(J(U, V), V)
580- let bB = Q(bb, J(U, V), U)
581- let bC = Q(bb, J(U, V), V)
582- let bG = (bB - bP)
583- let bH = (bC - bQ)
584- let bI = (bc - bL)
585- let bJ = (bD - bP)
586- let bK = (bE - bQ)
587- if ((s.payments[0].assetId == fromBase58String(ba)))
588- then if ((bL == s.payments[0].amount))
589- then [Burn(fromBase58String(ba), bL), ScriptTransfer(Address(s.caller.bytes), bP, K), ScriptTransfer(Address(s.caller.bytes), bQ, L), IntegerEntry(T(U, V, bb), height), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + U), bG), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + V), bH), IntegerEntry(((J(U, V) + "_") + bb), bI), IntegerEntry(((J(U, V) + "_") + U), bJ), IntegerEntry(((J(U, V) + "_") + V), bK), IntegerEntry(U, (q(U) - bP)), IntegerEntry(V, (q(V) - bQ)), IntegerEntry(ba, (q(ba) - bL))]
571+ let bM = (bJ / bL)
572+ let bN = (bM * bv)
573+ let bO = (bM * bw)
574+ let bB = Q(H(S, T), S)
575+ let bC = Q(H(S, T), T)
576+ let bz = O(aZ, H(S, T), S)
577+ let bA = O(aZ, H(S, T), T)
578+ let bE = (bz - bN)
579+ let bF = (bA - bO)
580+ let bG = (ba - bJ)
581+ let bH = (bB - bN)
582+ let bI = (bC - bO)
583+ if ((q.payments[0].assetId == fromBase58String(aY)))
584+ then if ((bJ == q.payments[0].amount))
585+ then [Burn(fromBase58String(aY), bJ), ScriptTransfer(Address(q.caller.bytes), bN, I), ScriptTransfer(Address(q.caller.bytes), bO, J), IntegerEntry(R(S, T, aZ), height), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + S), bE), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + T), bF), IntegerEntry(((H(S, T) + "_") + aZ), bG), IntegerEntry(((H(S, T) + "_") + S), bH), IntegerEntry(((H(S, T) + "_") + T), bI), IntegerEntry(S, (o(S) - bN)), IntegerEntry(T, (o(T) - bO)), IntegerEntry(aY, (o(aY) - bJ))]
590586 else throw("Withdrawal amount lower than asset lp amount")
591587 else throw("Requires an lp asset as payment to remove locked amounts.")
592588 }
601597
602598
603599
604-@Callable(s)
605-func swap (U,V) = {
606- let bb = toBase58String(s.caller.bytes)
607- let ab = getBooleanValue(this, H)
608- let aX = getBooleanValue(this, v)
609- let bR = getBooleanValue(this, x)
610- let bj = J(U, V)
611- let N = M(bj)
612- let K = s.payments[0].assetId
613- let bs = fromBase58String(getStringValue(this, B))
614- let bt = fromBase58String(getStringValue(this, D))
615- let bu = fromBase58String(getStringValue(this, C))
616- let bv = fromBase58String(getStringValue(this, E))
617- let aZ = fromBase58String(getStringValue(this, a))
618- let bw = fromBase58String(getStringValue(this, F))
619- let bS = ac(((J(U, V) + "_") + U), false)
620- let bT = ac(((J(U, V) + "_") + V), false)
621- let bU = getIntegerValue(this, g)
622- if (aX)
623- then if (!(bR))
624- then if (if (!((U == V)))
625- then if (Y(K, U, ab))
600+@Callable(q)
601+func swap (S,T) = {
602+ let aZ = toBase58String(q.caller.bytes)
603+ let Z = getBooleanValue(this, F)
604+ let aV = getBooleanValue(this, t)
605+ let bP = getBooleanValue(this, v)
606+ let bh = H(S, T)
607+ let L = K(bh)
608+ let I = q.payments[0].assetId
609+ let bq = fromBase58String(getStringValue(this, z))
610+ let br = fromBase58String(getStringValue(this, B))
611+ let bs = fromBase58String(getStringValue(this, A))
612+ let bt = fromBase58String(getStringValue(this, C))
613+ let aX = fromBase58String(getStringValue(this, a))
614+ let bu = fromBase58String(getStringValue(this, D))
615+ let bQ = aa(((H(S, T) + "_") + S), false)
616+ let bR = aa(((H(S, T) + "_") + T), false)
617+ let bS = getIntegerValue(this, g)
618+ if (aV)
619+ then if (!(bP))
620+ then if (if (!((S == T)))
621+ then if (W(I, S, Z))
626622 then true
627- else Y(K, V, ab)
623+ else W(I, T, Z)
628624 else false)
629- then if (if (if (if (if (if (if ((K == bs))
625+ then if (if (if (if (if (if (if ((I == bq))
630626 then true
631- else (K == bt))
627+ else (I == br))
632628 then true
633- else (K == bu))
629+ else (I == bs))
634630 then true
635- else (K == bv))
631+ else (I == bt))
636632 then true
637- else (K == aZ))
633+ else (I == aX))
638634 then true
639- else (K == bw))
635+ else (I == bu))
640636 then true
641- else (K == I))
642- then if (!((N == 0)))
643- then if ((s.payments[1].assetId == aZ))
644- then if ((s.payments[1].amount == 300000))
637+ else (I == G))
638+ then if ((L != false))
639+ then if ((q.payments[1].assetId == aX))
640+ then if ((q.payments[1].amount == 300000))
645641 then {
646- let bV = if (!((K == fromBase58String(U))))
647- then (bS / bT)
648- else (bT / bS)
649- let aO = (s.payments[0].amount - ((s.payments[0].amount * bU) / (100 * i)))
650- let bW = (aO * bV)
651-[ScriptTransfer(Address(s.caller.bytes), bW, if ((V == G))
652- then I
653- else fromBase58String(V)), IntegerEntry(V, (q(V) - bW)), IntegerEntry(((J(U, V) + "_") + V), (S(J(U, V), V) - bW))]
642+ let bT = if (!((I == fromBase58String(S))))
643+ then (bQ / bR)
644+ else (bR / bQ)
645+ let aM = (q.payments[0].amount - ((q.payments[0].amount * bS) / (100 * i)))
646+ let bU = (aM * bT)
647+[ScriptTransfer(Address(q.caller.bytes), bU, if ((T == E))
648+ then G
649+ else fromBase58String(T)), IntegerEntry(T, (o(T) - bU)), IntegerEntry(((H(S, T) + "_") + T), (Q(H(S, T), T) - bU))]
654650 }
655651 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
656652 else throw("Invalid rate asset")
662658 }
663659
664660
665-@Verifier(bX)
666-func bY () = {
667- let r = bX
668- if ($isInstanceOf(r, "Order"))
661+@Verifier(bV)
662+func bW () = {
663+ let p = bV
664+ if ($isInstanceOf(p, "Order"))
669665 then {
670- let bZ = r
666+ let bX = p
671667 true
672668 }
673- else if ($isInstanceOf(r, "ExchangeTransaction"))
669+ else if ($isInstanceOf(p, "ExchangeTransaction"))
674670 then {
675- let ca = r
671+ let bY = p
676672 true
677673 }
678- else sigVerify(bX.bodyBytes, bX.proofs[0], bX.senderPublicKey)
674+ else sigVerify(bV.bodyBytes, bV.proofs[0], bV.senderPublicKey)
679675 }
680676
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "main_asset"
55
66 let b = "lp_asset_"
77
88 let c = "pool__"
99
1010 let d = "STAKING_AMOUNT_"
1111
1212 let e = "LEASE_AMOUNT_"
1313
1414 let f = "ID_"
1515
1616 let g = "percentage_rate_fee"
1717
1818 let h = "Deposit_Height_Of_"
1919
2020 let i = 100000000
2121
2222 let j = 1000000
2323
24-let k = Address(this.bytes)
25-
26-let l = 5
27-
28-func m (n) = toString(valueOrErrorMessage(addressFromString(n), (("Can't parse " + n) + " as address")))
24+func k (l) = toString(valueOrErrorMessage(addressFromString(l), (("Can't parse " + l) + " as address")))
2925
3026
31-func o (p) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(p))).id, (("Asset Id: " + p) + " is invalid.")))
27+func m (n) = toBase58String(valueOrErrorMessage(value(assetInfo(fromBase58String(n))).id, (("Asset Id: " + n) + " is invalid.")))
3228
3329
34-func q (p) = {
35- let r = getInteger(this, p)
36- if ($isInstanceOf(r, "Int"))
30+func o (n) = {
31+ let p = getInteger(this, n)
32+ if ($isInstanceOf(p, "Int"))
3733 then {
38- let s = r
39- s
34+ let q = p
35+ q
4036 }
4137 else 0
4238 }
4339
4440
45-func t (p) = {
46- let r = assetInfo(p)
47- if ($isInstanceOf(r, "Asset"))
41+func r (n) = {
42+ let p = assetInfo(n)
43+ if ($isInstanceOf(p, "Asset"))
4844 then {
49- let u = r
50- u.name
45+ let s = p
46+ s.name
5147 }
5248 else throw("Can't find asset")
5349 }
5450
5551
56-let v = "activate"
52+let t = "activate"
5753
58-let w = "activate_pools"
54+let u = "activate_pools"
5955
60-let x = "activate_swap"
56+let v = "activate_swap"
6157
62-let y = "activate_liquidity"
58+let w = "activate_liquidity"
6359
64-let z = "block_distribuition"
60+let x = "block_distribuition"
6561
66-let A = "Total_Tokens_Locked_"
62+let y = "Total_Tokens_Locked_"
6763
68-let B = "usdn_asset"
64+let z = "usdn_asset"
6965
70-let C = "usdt_asset"
66+let A = "usdt_asset"
7167
72-let D = "usdc_asset"
68+let B = "usdc_asset"
7369
74-let E = "ngnn_asset"
70+let C = "ngnn_asset"
7571
76-let F = "eurn_asset"
72+let D = "eurn_asset"
7773
78-let G = "WAVES"
74+let E = "WAVES"
7975
80-let H = "accept_waves"
76+let F = "accept_waves"
8177
82-let I = unit
78+let G = unit
8379
84-func J (K,L) = (((c + K) + "_") + L)
80+func H (I,J) = (((c + I) + "_") + J)
8581
8682
87-func M (N) = {
88- let r = getInteger(this, N)
89- if ($isInstanceOf(r, "Int"))
83+func K (L) = {
84+ let p = getInteger(this, L)
85+ if ($isInstanceOf(p, "Int"))
9086 then {
91- let s = r
92- s
87+ let q = p
88+ q
89+ }
90+ else false
91+ }
92+
93+
94+func M (l,L) = {
95+ let p = getInteger(this, ((L + "_") + l))
96+ if ($isInstanceOf(p, "Int"))
97+ then {
98+ let N = p
99+ N
93100 }
94101 else 0
95102 }
96103
97104
98-func O (n,N) = {
99- let r = getInteger(this, ((N + "_") + n))
100- if ($isInstanceOf(r, "Int"))
105+func O (l,L,s) = {
106+ let p = getInteger(this, ((((l + "_") + L) + "_") + s))
107+ if ($isInstanceOf(p, "Int"))
101108 then {
102- let P = r
109+ let P = p
103110 P
104111 }
105112 else 0
106113 }
107114
108115
109-func Q (n,N,u) = {
110- let r = getInteger(this, ((((n + "_") + N) + "_") + u))
111- if ($isInstanceOf(r, "Int"))
116+func Q (L,s) = {
117+ let p = getInteger(this, ((L + "_") + s))
118+ if ($isInstanceOf(p, "Int"))
112119 then {
113- let R = r
114- R
120+ let P = p
121+ P
122+ }
123+ else 1
124+ }
125+
126+
127+func R (S,T,l) = (((h + H(S, T)) + "_") + l)
128+
129+
130+func U (l,L) = {
131+ let p = getInteger(this, ((("STAKE_LP_" + l) + "_") + L))
132+ if ($isInstanceOf(p, "Int"))
133+ then {
134+ let P = p
135+ P
115136 }
116137 else 0
117138 }
118139
119140
120-func S (N,u) = {
121- let r = getInteger(this, ((N + "_") + u))
122- if ($isInstanceOf(r, "Int"))
141+func V () = {
142+ let p = getString(this, "admin")
143+ if ($isInstanceOf(p, "String"))
123144 then {
124- let R = r
125- R
126- }
127- else 1
128- }
129-
130-
131-func T (U,V,n) = (((h + J(U, V)) + "_") + n)
132-
133-
134-func W (n,N) = {
135- let r = getInteger(this, ((("STAKE_LP_" + n) + "_") + N))
136- if ($isInstanceOf(r, "Int"))
137- then {
138- let R = r
139- R
140- }
141- else 0
142- }
143-
144-
145-func X () = {
146- let r = getString(this, "admin")
147- if ($isInstanceOf(r, "String"))
148- then {
149- let P = r
150- Address(fromBase58String(P))
145+ let N = p
146+ Address(fromBase58String(N))
151147 }
152148 else this
153149 }
154150
155151
156-func Y (Z,aa,ab) = if (if ((Z == I))
157- then (aa == "WAVES")
152+func W (X,Y,Z) = if (if ((X == G))
153+ then (Y == "WAVES")
158154 else false)
159- then if (ab)
155+ then if (Z)
160156 then true
161157 else throw("The smart contract does not currently support Waves.")
162- else if ((Z == fromBase58String(aa)))
158+ else if ((X == fromBase58String(Y)))
163159 then true
164160 else false
165161
166162
167-func ac (N,ad) = {
168- let r = getInteger(this, N)
169- if ($isInstanceOf(r, "Int"))
163+func aa (L,ab) = {
164+ let p = getInteger(this, L)
165+ if ($isInstanceOf(p, "Int"))
170166 then {
171- let R = r
172- R
167+ let P = p
168+ P
173169 }
174- else if (ad)
170+ else if (ab)
175171 then (1 * i)
176172 else 1
177173 }
178174
179175
180-@Callable(s)
181-func constructor (ae,af,ag,ah,ai,aj,ak,al,am) = if (if ((s.caller == this))
176+@Callable(q)
177+func constructor (ac,ad,ae,af,ag,ah,ai,aj,ak) = if (if ((q.caller == this))
182178 then true
183- else (s.caller == X()))
179+ else (q.caller == V()))
184180 then {
185- let an = J(af, ag)
186- let ao = J(af, ah)
187- let ap = J(af, ai)
188- let aq = J(af, G)
189- let ar = J(af, ae)
190- let as = J(af, aj)
191- let at = J(ah, ag)
192- let au = J(ah, ai)
193- let av = J(ah, G)
194- let aw = J(ah, ae)
195- let ax = J(ah, aj)
196- let ay = J(ag, ai)
197- let az = J(ag, G)
198- let aA = J(ag, ae)
199- let aB = J(ag, aj)
200- let aC = J(ai, G)
201- let aD = J(ai, ae)
202- let aE = J(ai, aj)
203- let aF = J(ae, G)
204- let aG = J(ae, aj)
205- let aH = J(aj, G)
206-[StringEntry(a, ae), StringEntry(B, af), StringEntry(D, ah), StringEntry(C, ag), StringEntry(E, ai), BooleanEntry(H, am), IntegerEntry(g, ak), BooleanEntry(v, true), BooleanEntry(x, false), BooleanEntry(w, false), BooleanEntry(y, false), IntegerEntry(z, al), IntegerEntry(an, 1), IntegerEntry(aq, 1), IntegerEntry(ao, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(at, 1), IntegerEntry(au, 1), IntegerEntry(av, 1), IntegerEntry(aA, 1), IntegerEntry(ay, 1), IntegerEntry(az, 1), IntegerEntry(aC, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aH, 1), IntegerEntry(aG, 1), IntegerEntry(aE, 1), IntegerEntry(ax, 1), IntegerEntry(as, 1), IntegerEntry(aB, 1), StringEntry(F, aj)]
181+ let al = H(ad, ae)
182+ let am = H(ad, af)
183+ let an = H(ad, ag)
184+ let ao = H(ad, E)
185+ let ap = H(ad, ac)
186+ let aq = H(ad, ah)
187+ let ar = H(af, ae)
188+ let as = H(af, ag)
189+ let at = H(af, E)
190+ let au = H(af, ac)
191+ let av = H(af, ah)
192+ let aw = H(ae, ag)
193+ let ax = H(ae, E)
194+ let ay = H(ae, ac)
195+ let az = H(ae, ah)
196+ let aA = H(ag, E)
197+ let aB = H(ag, ac)
198+ let aC = H(ag, ah)
199+ let aD = H(ac, E)
200+ let aE = H(ac, ah)
201+ let aF = H(ah, E)
202+[StringEntry(a, ac), StringEntry(z, ad), StringEntry(B, af), StringEntry(A, ae), StringEntry(C, ag), BooleanEntry(F, ak), IntegerEntry(g, ai), BooleanEntry(t, true), BooleanEntry(v, false), BooleanEntry(u, false), BooleanEntry(w, false), IntegerEntry(x, aj), IntegerEntry(al, 1), IntegerEntry(ao, 1), IntegerEntry(am, 1), IntegerEntry(an, 1), IntegerEntry(ap, 1), IntegerEntry(ar, 1), IntegerEntry(as, 1), IntegerEntry(at, 1), IntegerEntry(ay, 1), IntegerEntry(aw, 1), IntegerEntry(ax, 1), IntegerEntry(aA, 1), IntegerEntry(aB, 1), IntegerEntry(aD, 1), IntegerEntry(aF, 1), IntegerEntry(aE, 1), IntegerEntry(aC, 1), IntegerEntry(av, 1), IntegerEntry(aq, 1), IntegerEntry(az, 1), StringEntry(D, ah)]
207203 }
208204 else throw("Only the Admin itself can invoke this function")
209205
210206
211207
212-@Callable(s)
213-func activate (aI) = if (if ((s.caller == this))
208+@Callable(q)
209+func activate (aG) = if (if ((q.caller == this))
214210 then true
215- else (s.caller == X()))
216- then [BooleanEntry(v, aI)]
211+ else (q.caller == V()))
212+ then [BooleanEntry(t, aG)]
217213 else throw("Only the Admin itself can invoke this function")
218214
219215
220216
221-@Callable(s)
222-func maintenance (aJ,aK,aL) = if (if ((s.caller == this))
217+@Callable(q)
218+func maintenance (aH,aI,aJ) = if (if ((q.caller == this))
223219 then true
224- else (s.caller == X()))
225- then [BooleanEntry(w, aJ), BooleanEntry(x, aK), BooleanEntry(y, aL)]
220+ else (q.caller == V()))
221+ then [BooleanEntry(u, aH), BooleanEntry(v, aI), BooleanEntry(w, aJ)]
226222 else throw("Only the Admin itself can invoke this function")
227223
228224
229225
230-@Callable(s)
231-func percentualRateFeeSwapEdit (aM) = if (if ((s.caller == this))
226+@Callable(q)
227+func percentualRateFeeSwapEdit (aK) = if (if ((q.caller == this))
232228 then true
233- else (s.caller == X()))
234- then [IntegerEntry(g, aM)]
229+ else (q.caller == V()))
230+ then [IntegerEntry(g, aK)]
235231 else throw("Only the Admin itself can invoke this function")
236232
237233
238234
239-@Callable(s)
240-func acceptWaves (aN) = if (if ((s.caller == this))
235+@Callable(q)
236+func acceptWaves (aL) = if (if ((q.caller == this))
241237 then true
242- else (s.caller == X()))
243- then [BooleanEntry(H, aN)]
238+ else (q.caller == V()))
239+ then [BooleanEntry(F, aL)]
244240 else throw("Only the Admin itself can invoke this function")
245241
246242
247243
248-@Callable(s)
249-func blockDistribution (aO) = if (if ((s.caller == this))
244+@Callable(q)
245+func blockDistribution (aM) = if (if ((q.caller == this))
250246 then true
251- else (s.caller == X()))
252- then [IntegerEntry(z, aO)]
247+ else (q.caller == V()))
248+ then [IntegerEntry(x, aM)]
253249 else throw("Only the Admin itself can invoke this function")
254250
255251
256252
257-@Callable(s)
258-func addAdmin (n) = if (if ((s.caller == this))
253+@Callable(q)
254+func addAdmin (l) = if (if ((q.caller == this))
259255 then true
260- else (s.caller == X()))
261- then [StringEntry("admin", n)]
256+ else (q.caller == V()))
257+ then [StringEntry("admin", l)]
262258 else throw("Only the Admin itself can invoke this function")
263259
264260
265261
266-@Callable(s)
267-func lpAssetCreateForPairPool (K,L,aP,aQ) = {
268- let aR = if ((K == G))
269- then G
270- else t(fromBase58String(K))
271- let aS = if ((L == G))
272- then G
273- else t(fromBase58String(L))
274- let aT = if (aQ)
275- then aP
276- else ((aR + "_") + aS)
277- let N = M(J(K, L))
278- if (if ((s.caller == this))
262+@Callable(q)
263+func lpAssetCreateForPairPool (I,J,aN,aO) = {
264+ let aP = if ((I == E))
265+ then E
266+ else r(fromBase58String(I))
267+ let aQ = if ((J == E))
268+ then E
269+ else r(fromBase58String(J))
270+ let aR = if (aO)
271+ then aN
272+ else ((aP + "_") + aQ)
273+ let L = K(H(I, J))
274+ if (if ((q.caller == this))
279275 then true
280- else (s.caller == X()))
281- then if (!((N == 0)))
276+ else (q.caller == V()))
277+ then if ((L != false))
282278 then {
283- let aU = Issue(aT, ((("LP asset for pool liquidity in AxAi Swap pair " + K) + "_") + L), 1, 8, true)
284- let aV = calculateAssetId(aU)
285-[StringEntry((b + J(K, L)), toBase58String(aV)), aU]
279+ let aS = Issue(aR, ((("LP asset for pool liquidity in AxAi Swap pair " + I) + "_") + J), 1, 8, true)
280+ let aT = calculateAssetId(aS)
281+[StringEntry((b + H(I, J)), toBase58String(aT)), aS]
286282 }
287283 else throw("Invalid Pool Key. Try inverting the assets")
288284 else throw("Only the Admin itself can invoke this function")
289285 }
290286
291287
292288
293-@Callable(s)
294-func deposit (aW,U,V) = {
295- let aX = getBooleanValue(this, v)
296- let aY = getBooleanValue(this, y)
297- let aZ = getStringValue(this, a)
298- let ba = if (aW)
299- then getStringValue(this, (b + J(U, V)))
300- else aZ
301- if (aX)
302- then if (!(aY))
303- then if ((s.payments[0].assetId != fromBase58String(ba)))
304- then throw((("Invalid asset! Kindly Deposit Only " + aZ) + " or valid asset lp"))
305- else if (!(aW))
289+@Callable(q)
290+func deposit (aU,S,T) = {
291+ let aV = getBooleanValue(this, t)
292+ let aW = getBooleanValue(this, w)
293+ let aX = getStringValue(this, a)
294+ let aY = if (aU)
295+ then getStringValue(this, (b + H(S, T)))
296+ else aX
297+ if (aV)
298+ then if (!(aW))
299+ then if ((q.payments[0].assetId != fromBase58String(aY)))
300+ then throw((("Invalid asset! Kindly Deposit Only " + aX) + " or valid asset lp"))
301+ else if (!(aU))
306302 then {
307- let bb = toBase58String(s.caller.bytes)
308- let bc = {
309- let r = getInteger(this, bb)
310- if ($isInstanceOf(r, "Int"))
303+ let aZ = toBase58String(q.caller.bytes)
304+ let ba = {
305+ let p = getInteger(this, aZ)
306+ if ($isInstanceOf(p, "Int"))
311307 then {
312- let R = r
313- R
308+ let P = p
309+ P
314310 }
315311 else 0
316312 }
317- let bd = (bc + s.payments[0].amount)
318- let be = IntegerEntry(bb, bd)
319- let bf = IntegerEntry((h + bb), height)
320- let bg = {
321- let r = getInteger(this, "Total_Tokens_Locked:")
322- if ($isInstanceOf(r, "Int"))
313+ let bb = (ba + q.payments[0].amount)
314+ let bc = IntegerEntry(aZ, bb)
315+ let bd = IntegerEntry((h + aZ), height)
316+ let be = {
317+ let p = getInteger(this, "Total_Tokens_Locked:")
318+ if ($isInstanceOf(p, "Int"))
323319 then {
324- let R = r
325- R
320+ let P = p
321+ P
326322 }
327323 else 0
328324 }
329- let bh = (bg + s.payments[0].amount)
330- let bi = IntegerEntry("Total_Tokens_Locked:", bh)
331-[be, bf, bi]
325+ let bf = (be + q.payments[0].amount)
326+ let bg = IntegerEntry("Total_Tokens_Locked:", bf)
327+[bc, bd, bg]
332328 }
333329 else {
334- let bj = J(U, V)
335- let N = M(bj)
336- if (!((N == 0)))
330+ let bh = H(S, T)
331+ let L = K(bh)
332+ if ((L != false))
337333 then {
338- let bb = toBase58String(s.caller.bytes)
339- let bc = {
340- let r = getInteger(this, ((("STAKE_LP_" + bb) + "_") + bj))
341- if ($isInstanceOf(r, "Int"))
334+ let aZ = toBase58String(q.caller.bytes)
335+ let ba = {
336+ let p = getInteger(this, ((("STAKE_LP_" + aZ) + "_") + bh))
337+ if ($isInstanceOf(p, "Int"))
342338 then {
343- let R = r
344- R
339+ let P = p
340+ P
345341 }
346342 else 0
347343 }
348- let bd = (bc + s.payments[0].amount)
349- let be = IntegerEntry(((("STAKE_LP_" + bb) + "_") + bj), bd)
350- let bf = IntegerEntry(((((h + "_") + bb) + "_") + bj), height)
351- let bg = {
352- let r = getInteger(this, ("Total_Tokens_LP_Locked_" + bj))
353- if ($isInstanceOf(r, "Int"))
344+ let bb = (ba + q.payments[0].amount)
345+ let bc = IntegerEntry(((("STAKE_LP_" + aZ) + "_") + bh), bb)
346+ let bd = IntegerEntry(((((h + "_") + aZ) + "_") + bh), height)
347+ let be = {
348+ let p = getInteger(this, ("Total_Tokens_LP_Locked_" + bh))
349+ if ($isInstanceOf(p, "Int"))
354350 then {
355- let R = r
356- R
351+ let P = p
352+ P
357353 }
358354 else 0
359355 }
360- let bh = (bg + s.payments[0].amount)
361- let bi = IntegerEntry(("Total_Tokens_LP_Locked_" + bj), bh)
362-[be, bf, bi]
356+ let bf = (be + q.payments[0].amount)
357+ let bg = IntegerEntry(("Total_Tokens_LP_Locked_" + bh), bf)
358+[bc, bd, bg]
363359 }
364360 else throw("Invalid Pool key.")
365361 }
366362 else throw("liquidity is currently under maintenance.")
367363 else throw("dApp is currently under maintenance.")
368364 }
369365
370366
371367
372-@Callable(s)
373-func remove (aW,U,V,bk) = {
374- let aX = getBooleanValue(this, v)
375- let aY = getBooleanValue(this, y)
376- let bl = s.payments[0]
377- let aZ = fromBase58String(getStringValue(this, a))
378- if (aX)
379- then if (!(aY))
368+@Callable(q)
369+func remove (aU,S,T,bi) = {
370+ let aV = getBooleanValue(this, t)
371+ let aW = getBooleanValue(this, w)
372+ let bj = q.payments[0]
373+ let aX = fromBase58String(getStringValue(this, a))
374+ if (aV)
375+ then if (!(aW))
380376 then {
381- let bb = toBase58String(s.caller.bytes)
382- let bc = {
383- let r = if (aW)
384- then getIntegerValue(this, ((("STAKE_LP_" + bb) + "_") + J(U, V)))
385- else getIntegerValue(this, bb)
386- if ($isInstanceOf(r, "Int"))
377+ let aZ = toBase58String(q.caller.bytes)
378+ let ba = {
379+ let p = if (aU)
380+ then getIntegerValue(this, ((("STAKE_LP_" + aZ) + "_") + H(S, T)))
381+ else getIntegerValue(this, aZ)
382+ if ($isInstanceOf(p, "Int"))
387383 then {
388- let R = r
389- R
384+ let P = p
385+ P
390386 }
391387 else 0
392388 }
393- let bm = if (aW)
394- then ((((h + "_") + bb) + "_") + J(U, V))
395- else (h + bb)
396- let bg = if (aW)
397- then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + J(U, V)))
389+ let bk = if (aU)
390+ then ((((h + "_") + aZ) + "_") + H(S, T))
391+ else (h + aZ)
392+ let be = if (aU)
393+ then getIntegerValue(this, ("Total_Tokens_LP_Locked_" + H(S, T)))
398394 else getIntegerValue(this, "Total_Tokens_Locked:")
399- let bh = (bg - bk)
400- let bn = (height - getIntegerValue(this, bm))
401- let bo = getIntegerValue(this, z)
402- let bp = ((bn * bo) * i)
403- let bq = (bp / (bg / bk))
404- if ((0 > bk))
405- then throw(if (aW)
406- then (((("Can't withdraw negative " + U) + "/") + V) + " amount")
395+ let bf = (be - bi)
396+ let bl = (height - getIntegerValue(this, bk))
397+ let bm = getIntegerValue(this, x)
398+ let bn = ((bl * bm) * i)
399+ let bo = (bn / (be / bi))
400+ if ((0 > bi))
401+ then throw(if (aU)
402+ then (((("Can't withdraw negative " + S) + "/") + T) + " amount")
407403 else "Can't withdraw negative AxAi amount")
408404 else {
409- let bd = (bc - bk)
410- if ((0 > bd))
411- then throw(if (aW)
412- then (((("Not enough Asset Lp " + U) + "/") + V) + " balance")
405+ let bb = (ba - bi)
406+ if ((0 > bb))
407+ then throw(if (aU)
408+ then (((("Not enough Asset Lp " + S) + "/") + T) + " balance")
413409 else "Not enough AxAi balance")
414- else [IntegerEntry(if (aW)
415- then ((("STAKE_LP_" + bb) + "_") + J(U, V))
416- else bb, bd), IntegerEntry(if (aW)
417- then ("Total_Tokens_LP_Locked_" + J(U, V))
418- else "Total_Tokens_Locked:", bh), ScriptTransfer(s.caller, bk, if (aW)
419- then fromBase58String(getStringValue(this, (b + J(U, V))))
420- else aZ), ScriptTransfer(s.caller, bq, aZ)]
410+ else [IntegerEntry(if (aU)
411+ then ((("STAKE_LP_" + aZ) + "_") + H(S, T))
412+ else aZ, bb), IntegerEntry(if (aU)
413+ then ("Total_Tokens_LP_Locked_" + H(S, T))
414+ else "Total_Tokens_Locked:", bf), ScriptTransfer(q.caller, bi, if (aU)
415+ then fromBase58String(getStringValue(this, (b + H(S, T))))
416+ else aX), ScriptTransfer(q.caller, bo, aX)]
421417 }
422418 }
423419 else throw("liquidity is currently under maintenance.")
424420 else throw("dApp is currently under maintenance.")
425421 }
426422
427423
428424
429-@Callable(s)
430-func addLiquidity (U,V) = {
431- let aX = getBooleanValue(this, v)
432- let br = getBooleanValue(this, w)
433- let ab = getBooleanValue(this, H)
434- let N = M(J(U, V))
435- let K = s.payments[0].assetId
436- let L = s.payments[1].assetId
437- let bs = fromBase58String(getStringValue(this, B))
438- let bt = fromBase58String(getStringValue(this, D))
439- let bu = fromBase58String(getStringValue(this, C))
440- let bv = fromBase58String(getStringValue(this, E))
441- let bw = fromBase58String(getStringValue(this, F))
442- let aZ = fromBase58String(getStringValue(this, a))
443- let ba = getStringValue(this, (b + J(U, V)))
444- let bx = ac(((J(U, V) + "_") + U), false)
445- let by = ac(((J(U, V) + "_") + V), false)
446- let bz = (bx / by)
447- let bA = (by / bx)
448- if (aX)
449- then if (!(br))
450- then if (if (if (!((K == L)))
451- then Y(K, U, ab)
425+@Callable(q)
426+func addLiquidity (S,T) = {
427+ let aV = getBooleanValue(this, t)
428+ let bp = getBooleanValue(this, u)
429+ let Z = getBooleanValue(this, F)
430+ let L = K(H(S, T))
431+ let I = q.payments[0].assetId
432+ let J = q.payments[1].assetId
433+ let bq = fromBase58String(getStringValue(this, z))
434+ let br = fromBase58String(getStringValue(this, B))
435+ let bs = fromBase58String(getStringValue(this, A))
436+ let bt = fromBase58String(getStringValue(this, C))
437+ let bu = fromBase58String(getStringValue(this, D))
438+ let aX = fromBase58String(getStringValue(this, a))
439+ let aY = getStringValue(this, (b + H(S, T)))
440+ let bv = aa(((H(S, T) + "_") + S), false)
441+ let bw = aa(((H(S, T) + "_") + T), false)
442+ let bx = (bv / bw)
443+ let by = (bw / bv)
444+ if (aV)
445+ then if (!(bp))
446+ then if (if (if (!((I == J)))
447+ then W(I, S, Z)
452448 else false)
453- then Y(L, V, ab)
449+ then W(J, T, Z)
454450 else false)
455- then if (if (if (if (if (if (if (if ((K == bs))
451+ then if (if (if (if (if (if (if (if ((I == bq))
456452 then true
457- else (K == bt))
453+ else (I == br))
458454 then true
459- else (K == bu))
455+ else (I == bs))
460456 then true
461- else (K == bv))
457+ else (I == bt))
462458 then true
463- else (K == aZ))
459+ else (I == aX))
464460 then true
465- else (K == I))
461+ else (I == G))
466462 then true
467- else (K == bw))
468- then if (if (if (if (if (if ((L == bs))
463+ else (I == bu))
464+ then if (if (if (if (if (if ((J == bq))
469465 then true
470- else (L == bt))
466+ else (J == br))
471467 then true
472- else (L == bu))
468+ else (J == bs))
473469 then true
474- else (L == bv))
470+ else (J == bt))
475471 then true
476- else (L == aZ))
472+ else (J == aX))
477473 then true
478- else (L == I))
474+ else (J == G))
479475 then true
480- else (L == bw)
476+ else (J == bu)
481477 else false)
482- then if (!((N == 0)))
483- then if (if ((bz == (s.payments[0].amount / s.payments[1].amount)))
484- then (bA == (s.payments[1].amount / s.payments[0].amount))
478+ then if ((L != false))
479+ then if (if ((bx == (q.payments[0].amount / q.payments[1].amount)))
480+ then (by == (q.payments[1].amount / q.payments[0].amount))
485481 else false)
486482 then {
487- let bb = toBase58String(s.caller.bytes)
488- let bc = O(bb, J(U, V))
489- let bB = Q(bb, J(U, V), U)
490- let bC = Q(bb, J(U, V), V)
491- let bD = S(J(U, V), U)
492- let bE = S(J(U, V), V)
493- let bF = (((by * (s.payments[0].amount / s.payments[1].amount)) / 10) * i)
494- let bG = (bB + s.payments[0].amount)
495- let bH = (bC + s.payments[1].amount)
496- let bI = (bc + bF)
497- let bJ = (bD + s.payments[0].amount)
498- let bK = (bE + s.payments[1].amount)
499-[Reissue(fromBase58String(ba), bF, true), ScriptTransfer(Address(s.caller.bytes), bF, fromBase58String(ba)), IntegerEntry(T(U, V, bb), height), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + U), bG), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + V), bH), IntegerEntry(((J(U, V) + "_") + bb), bI), IntegerEntry(((J(U, V) + "_") + U), bJ), IntegerEntry(((J(U, V) + "_") + V), bK), IntegerEntry(U, (q(U) + s.payments[0].amount)), IntegerEntry(V, (q(V) + s.payments[1].amount)), IntegerEntry(ba, (q(ba) + bF))]
483+ let aZ = toBase58String(q.caller.bytes)
484+ let ba = M(aZ, H(S, T))
485+ let bz = O(aZ, H(S, T), S)
486+ let bA = O(aZ, H(S, T), T)
487+ let bB = Q(H(S, T), S)
488+ let bC = Q(H(S, T), T)
489+ let bD = (((bw * (q.payments[0].amount / q.payments[1].amount)) / 10) * i)
490+ let bE = (bz + q.payments[0].amount)
491+ let bF = (bA + q.payments[1].amount)
492+ let bG = (ba + bD)
493+ let bH = (bB + q.payments[0].amount)
494+ let bI = (bC + q.payments[1].amount)
495+[Reissue(fromBase58String(aY), bD, true), ScriptTransfer(Address(q.caller.bytes), bD, fromBase58String(aY)), IntegerEntry(R(S, T, aZ), height), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + S), bE), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + T), bF), IntegerEntry(((H(S, T) + "_") + aZ), bG), IntegerEntry(((H(S, T) + "_") + S), bH), IntegerEntry(((H(S, T) + "_") + T), bI), IntegerEntry(S, (o(S) + q.payments[0].amount)), IntegerEntry(T, (o(T) + q.payments[1].amount)), IntegerEntry(aY, (o(aY) + bD))]
500496 }
501497 else throw("Payment of invalid 1/1 amounts to the Pool.")
502498 else throw("Invalid Pool Key.")
503499 else throw("Invalid Asset1 or Asset2!")
504500 else throw("Asset1 cannot be equal to Asset2")
505501 else throw("liquidity is currently under maintenance.")
506502 else throw("dApp is currently under maintenance.")
507503 }
508504
509505
510506
511-@Callable(s)
512-func removeLiquidity (U,V,bL) = {
513- let bb = toBase58String(s.caller.bytes)
514- let aX = getBooleanValue(this, v)
515- let br = getBooleanValue(this, w)
516- let ab = getBooleanValue(this, H)
517- let bj = J(U, V)
518- let N = M(bj)
519- let K = if ((U == G))
520- then if (ab)
521- then I
507+@Callable(q)
508+func removeLiquidity (S,T,bJ) = {
509+ let aZ = toBase58String(q.caller.bytes)
510+ let aV = getBooleanValue(this, t)
511+ let bp = getBooleanValue(this, u)
512+ let Z = getBooleanValue(this, F)
513+ let bh = H(S, T)
514+ let L = K(bh)
515+ let I = if ((S == E))
516+ then if (Z)
517+ then G
522518 else throw("The smart contract does not currently support Waves.")
523- else fromBase58String(U)
524- let L = if ((V == G))
525- then if (ab)
526- then I
519+ else fromBase58String(S)
520+ let J = if ((T == E))
521+ then if (Z)
522+ then G
527523 else throw("The smart contract does not currently support Waves.")
528- else fromBase58String(V)
529- let bs = fromBase58String(getStringValue(this, B))
530- let bt = fromBase58String(getStringValue(this, D))
531- let bu = fromBase58String(getStringValue(this, C))
532- let bv = fromBase58String(getStringValue(this, E))
533- let aZ = fromBase58String(getStringValue(this, a))
534- let bw = fromBase58String(getStringValue(this, F))
535- let ba = getStringValue(this, (b + J(U, V)))
536- let bc = O(bb, J(U, V))
537- let bM = W(bb, bj)
538- let bN = getIntegerValue(this, ba)
539- let bx = ac(((J(U, V) + "_") + U), false)
540- let by = ac(((J(U, V) + "_") + V), false)
541- if (aX)
542- then if (!(br))
543- then if (!((U == V)))
544- then if (if (if (if (if (if (if (if ((K == bs))
524+ else fromBase58String(T)
525+ let bq = fromBase58String(getStringValue(this, z))
526+ let br = fromBase58String(getStringValue(this, B))
527+ let bs = fromBase58String(getStringValue(this, A))
528+ let bt = fromBase58String(getStringValue(this, C))
529+ let aX = fromBase58String(getStringValue(this, a))
530+ let bu = fromBase58String(getStringValue(this, D))
531+ let aY = getStringValue(this, (b + H(S, T)))
532+ let ba = M(aZ, H(S, T))
533+ let bK = U(aZ, bh)
534+ let bL = getIntegerValue(this, aY)
535+ let bv = aa(((H(S, T) + "_") + S), false)
536+ let bw = aa(((H(S, T) + "_") + T), false)
537+ if (aV)
538+ then if (!(bp))
539+ then if (!((S == T)))
540+ then if (if (if (if (if (if (if (if ((I == bq))
545541 then true
546- else (K == bt))
542+ else (I == br))
547543 then true
548- else (K == bu))
544+ else (I == bs))
549545 then true
550- else (K == bv))
546+ else (I == bt))
551547 then true
552- else (K == aZ))
548+ else (I == aX))
553549 then true
554- else (K == I))
550+ else (I == G))
555551 then true
556- else (K == bw))
557- then if (if (if (if (if (if ((L == bs))
552+ else (I == bu))
553+ then if (if (if (if (if (if ((J == bq))
558554 then true
559- else (L == bt))
555+ else (J == br))
560556 then true
561- else (L == bu))
557+ else (J == bs))
562558 then true
563- else (L == bv))
559+ else (J == bt))
564560 then true
565- else (L == aZ))
561+ else (J == aX))
566562 then true
567- else (L == I))
563+ else (J == G))
568564 then true
569- else (L == bw)
565+ else (J == bu)
570566 else false)
571- then if (!((N == 0)))
572- then if (!((bc == 0)))
573- then if (((bc - bM) >= bL))
567+ then if ((L != false))
568+ then if (!((ba == 0)))
569+ then if (((ba - bK) >= bJ))
574570 then {
575- let bO = (bL / bN)
576- let bP = (bO * bx)
577- let bQ = (bO * by)
578- let bD = S(J(U, V), U)
579- let bE = S(J(U, V), V)
580- let bB = Q(bb, J(U, V), U)
581- let bC = Q(bb, J(U, V), V)
582- let bG = (bB - bP)
583- let bH = (bC - bQ)
584- let bI = (bc - bL)
585- let bJ = (bD - bP)
586- let bK = (bE - bQ)
587- if ((s.payments[0].assetId == fromBase58String(ba)))
588- then if ((bL == s.payments[0].amount))
589- then [Burn(fromBase58String(ba), bL), ScriptTransfer(Address(s.caller.bytes), bP, K), ScriptTransfer(Address(s.caller.bytes), bQ, L), IntegerEntry(T(U, V, bb), height), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + U), bG), IntegerEntry(((((bb + "_") + J(U, V)) + "_") + V), bH), IntegerEntry(((J(U, V) + "_") + bb), bI), IntegerEntry(((J(U, V) + "_") + U), bJ), IntegerEntry(((J(U, V) + "_") + V), bK), IntegerEntry(U, (q(U) - bP)), IntegerEntry(V, (q(V) - bQ)), IntegerEntry(ba, (q(ba) - bL))]
571+ let bM = (bJ / bL)
572+ let bN = (bM * bv)
573+ let bO = (bM * bw)
574+ let bB = Q(H(S, T), S)
575+ let bC = Q(H(S, T), T)
576+ let bz = O(aZ, H(S, T), S)
577+ let bA = O(aZ, H(S, T), T)
578+ let bE = (bz - bN)
579+ let bF = (bA - bO)
580+ let bG = (ba - bJ)
581+ let bH = (bB - bN)
582+ let bI = (bC - bO)
583+ if ((q.payments[0].assetId == fromBase58String(aY)))
584+ then if ((bJ == q.payments[0].amount))
585+ then [Burn(fromBase58String(aY), bJ), ScriptTransfer(Address(q.caller.bytes), bN, I), ScriptTransfer(Address(q.caller.bytes), bO, J), IntegerEntry(R(S, T, aZ), height), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + S), bE), IntegerEntry(((((aZ + "_") + H(S, T)) + "_") + T), bF), IntegerEntry(((H(S, T) + "_") + aZ), bG), IntegerEntry(((H(S, T) + "_") + S), bH), IntegerEntry(((H(S, T) + "_") + T), bI), IntegerEntry(S, (o(S) - bN)), IntegerEntry(T, (o(T) - bO)), IntegerEntry(aY, (o(aY) - bJ))]
590586 else throw("Withdrawal amount lower than asset lp amount")
591587 else throw("Requires an lp asset as payment to remove locked amounts.")
592588 }
593589 else throw("Amount to be withdrawn greater than the amount available for withdrawal.")
594590 else throw("You have no locked values ​​in the pool")
595591 else throw("Invalid Pool Key.")
596592 else throw("Invalid Asset1 or Asset2!")
597593 else throw("Asset1 cannot be equal to Asset2")
598594 else throw("liquidity is currently under maintenance.")
599595 else throw("dApp is currently under maintenance.")
600596 }
601597
602598
603599
604-@Callable(s)
605-func swap (U,V) = {
606- let bb = toBase58String(s.caller.bytes)
607- let ab = getBooleanValue(this, H)
608- let aX = getBooleanValue(this, v)
609- let bR = getBooleanValue(this, x)
610- let bj = J(U, V)
611- let N = M(bj)
612- let K = s.payments[0].assetId
613- let bs = fromBase58String(getStringValue(this, B))
614- let bt = fromBase58String(getStringValue(this, D))
615- let bu = fromBase58String(getStringValue(this, C))
616- let bv = fromBase58String(getStringValue(this, E))
617- let aZ = fromBase58String(getStringValue(this, a))
618- let bw = fromBase58String(getStringValue(this, F))
619- let bS = ac(((J(U, V) + "_") + U), false)
620- let bT = ac(((J(U, V) + "_") + V), false)
621- let bU = getIntegerValue(this, g)
622- if (aX)
623- then if (!(bR))
624- then if (if (!((U == V)))
625- then if (Y(K, U, ab))
600+@Callable(q)
601+func swap (S,T) = {
602+ let aZ = toBase58String(q.caller.bytes)
603+ let Z = getBooleanValue(this, F)
604+ let aV = getBooleanValue(this, t)
605+ let bP = getBooleanValue(this, v)
606+ let bh = H(S, T)
607+ let L = K(bh)
608+ let I = q.payments[0].assetId
609+ let bq = fromBase58String(getStringValue(this, z))
610+ let br = fromBase58String(getStringValue(this, B))
611+ let bs = fromBase58String(getStringValue(this, A))
612+ let bt = fromBase58String(getStringValue(this, C))
613+ let aX = fromBase58String(getStringValue(this, a))
614+ let bu = fromBase58String(getStringValue(this, D))
615+ let bQ = aa(((H(S, T) + "_") + S), false)
616+ let bR = aa(((H(S, T) + "_") + T), false)
617+ let bS = getIntegerValue(this, g)
618+ if (aV)
619+ then if (!(bP))
620+ then if (if (!((S == T)))
621+ then if (W(I, S, Z))
626622 then true
627- else Y(K, V, ab)
623+ else W(I, T, Z)
628624 else false)
629- then if (if (if (if (if (if (if ((K == bs))
625+ then if (if (if (if (if (if (if ((I == bq))
630626 then true
631- else (K == bt))
627+ else (I == br))
632628 then true
633- else (K == bu))
629+ else (I == bs))
634630 then true
635- else (K == bv))
631+ else (I == bt))
636632 then true
637- else (K == aZ))
633+ else (I == aX))
638634 then true
639- else (K == bw))
635+ else (I == bu))
640636 then true
641- else (K == I))
642- then if (!((N == 0)))
643- then if ((s.payments[1].assetId == aZ))
644- then if ((s.payments[1].amount == 300000))
637+ else (I == G))
638+ then if ((L != false))
639+ then if ((q.payments[1].assetId == aX))
640+ then if ((q.payments[1].amount == 300000))
645641 then {
646- let bV = if (!((K == fromBase58String(U))))
647- then (bS / bT)
648- else (bT / bS)
649- let aO = (s.payments[0].amount - ((s.payments[0].amount * bU) / (100 * i)))
650- let bW = (aO * bV)
651-[ScriptTransfer(Address(s.caller.bytes), bW, if ((V == G))
652- then I
653- else fromBase58String(V)), IntegerEntry(V, (q(V) - bW)), IntegerEntry(((J(U, V) + "_") + V), (S(J(U, V), V) - bW))]
642+ let bT = if (!((I == fromBase58String(S))))
643+ then (bQ / bR)
644+ else (bR / bQ)
645+ let aM = (q.payments[0].amount - ((q.payments[0].amount * bS) / (100 * i)))
646+ let bU = (aM * bT)
647+[ScriptTransfer(Address(q.caller.bytes), bU, if ((T == E))
648+ then G
649+ else fromBase58String(T)), IntegerEntry(T, (o(T) - bU)), IntegerEntry(((H(S, T) + "_") + T), (Q(H(S, T), T) - bU))]
654650 }
655651 else throw("Swap denied! 0.003 AxAi is required for the swap fee.")
656652 else throw("Invalid rate asset")
657653 else throw("Invalid Swap Key.")
658654 else throw("Invalid Asset1 or Asset2!")
659655 else throw("Asset1 cannot be equal to Asset2")
660656 else throw("Swap is currently under maintenance.")
661657 else throw("dApp is currently under maintenance.")
662658 }
663659
664660
665-@Verifier(bX)
666-func bY () = {
667- let r = bX
668- if ($isInstanceOf(r, "Order"))
661+@Verifier(bV)
662+func bW () = {
663+ let p = bV
664+ if ($isInstanceOf(p, "Order"))
669665 then {
670- let bZ = r
666+ let bX = p
671667 true
672668 }
673- else if ($isInstanceOf(r, "ExchangeTransaction"))
669+ else if ($isInstanceOf(p, "ExchangeTransaction"))
674670 then {
675- let ca = r
671+ let bY = p
676672 true
677673 }
678- else sigVerify(bX.bodyBytes, bX.proofs[0], bX.senderPublicKey)
674+ else sigVerify(bV.bodyBytes, bV.proofs[0], bV.senderPublicKey)
679675 }
680676

github/deemru/w8io/c3f4982 
303.93 ms