tx · 64zSRVXDZ6oyANU3aCNma2gjBca33pwWwT4a2irxo9sV

3N6gW9pPZr3SAo2nBKpANYM19CZRva5Ygh8:  -0.01400000 Waves

2021.10.22 18:06 [1757665] smart account 3N6gW9pPZr3SAo2nBKpANYM19CZRva5Ygh8 > SELF 0.00000000 Waves

{ "type": 13, "id": "64zSRVXDZ6oyANU3aCNma2gjBca33pwWwT4a2irxo9sV", "fee": 1400000, "feeAssetId": null, "timestamp": 1634915238054, "version": 1, "sender": "3N6gW9pPZr3SAo2nBKpANYM19CZRva5Ygh8", "senderPublicKey": "HLqVgP5nfMJq44e9bWX6pKhhzghEdUHUExBcseZb28jy", "proofs": [ "5zS99yMaMnYpHCZ18A4JuVZew1HL9pDjCkqf2MoLUg7Fz4iDJCM8nwYKbTqiY6c44ENnHqzer9stcKffg8RKSW8L" ], "script": "base64:AAIFAAAAAAAAAA4IAhIDCgEIEgASAwoBCAAAAB8AAAAAA1NFUAIAAAACX18AAAAABnNjYWxlOAAAAAAABfXhAAAAAAARcG9vbFN0YXRzUHJpY2VLZXkAAAAAAAAAAAQAAAAADmlkeFBvb2xBZGRyZXNzAAAAAAAAAAABAAAAAA1pZHhQb29sU3RhdHVzAAAAAAAAAAACAAAAABBpZHhQb29sTFBBc3NldElkAAAAAAAAAAADAAAAAA1pZHhBbXRBc3NldElkAAAAAAAAAAAEAAAAAA9pZHhQcmljZUFzc2V0SWQAAAAAAAAAAAUAAAAADmlkeEFtdEFzc2V0RGNtAAAAAAAAAAAGAAAAABBpZHhQcmljZUFzc2V0RGNtAAAAAAAAAAAHAAAAAA5pZHhJQW10QXNzZXRJZAAAAAAAAAAACAAAAAAQaWR4SVByaWNlQXNzZXRJZAAAAAAAAAAACQAAAAANaWR4TFBBc3NldERjbQAAAAAAAAAACgAAAAATaWR4TWF0Y2hlclB1YmxpY0tleQAAAAAAAAAACwEAAAAOa2V5UmVnaXN0ZXJQdXQAAAACAAAAC3Bvb2xBZGRyZXNzAAAABHR4SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACyVzJXMlc19fUF9fBQAAAAtwb29sQWRkcmVzcwIAAAACX18FAAAABHR4SWQBAAAAEWtleVJlZ2lzdGVySW52ZXN0AAAAAgAAAAtwb29sQWRkcmVzcwAAAAR0eElkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABAlcyVzJXNfX2ludmVzdF9fBQAAAAtwb29sQWRkcmVzcwIAAAACX18FAAAABHR4SWQBAAAAFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQAAAACAAAAC3Bvb2xBZGRyZXNzAAAAB2Fzc2V0SWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADyVzJXMlc19fdG90YWxfXwUAAAALcG9vbEFkZHJlc3MCAAAAAl9fBQAAAAdhc3NldElkAQAAABJrZXlGYWN0b3J5Q29udHJhY3QAAAAAAgAAABMlc19fZmFjdG9yeUNvbnRyYWN0AQAAACBrZXlTbGlwcGFnZUFtdFBlckFzc2V0Q3VtdWxhdGl2ZQAAAAIAAAALcG9vbEFkZHJlc3MAAAAHYXNzZXRJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAglcyVzJXNfXwUAAAALcG9vbEFkZHJlc3MCAAAAAl9fBQAAAAdhc3NldElkAgAAABRfX3NsaXBwYWdlQ3VtdWxhdGl2ZQEAAAAQa2V5RmFjdG9yeUNvbmZpZwAAAAACAAAAESVzX19mYWN0b3J5Q29uZmlnAQAAAClrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwAAAAEAAAATcG9vbENvbnRyYWN0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAACCVzJXMlc19fBQAAABNwb29sQ29udHJhY3RBZGRyZXNzAgAAACNfX21hcHBpbmdzX19wb29sQ29udHJhY3QyUG9vbEFzc2V0cwEAAAAfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAAAAAEAAAARaW50ZXJuYWxCYXNlQXNzZXQJAAEsAAAAAgIAAAAoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkAAaQAAAABBQAAABFpbnRlcm5hbEJhc2VBc3NldAEAAAANa2V5UG9vbENvbmZpZwAAAAIAAAAJaUFtdEFzc2V0AAAAC2lQcmljZUFzc2V0CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACCVkJWQlc19fBQAAAAlpQW10QXNzZXQCAAAAAl9fBQAAAAtpUHJpY2VBc3NldAIAAAAIX19jb25maWcBAAAAE2tleUFsbFBvb2xzU2h1dGRvd24AAAAAAgAAAAwlc19fc2h1dGRvd24BAAAADWtleVBvb2xXZWlnaHQAAAABAAAAD2NvbnRyYWN0QWRkcmVzcwkAASwAAAACAgAAABIlcyVzX19wb29sV2VpZ2h0X18FAAAAD2NvbnRyYWN0QWRkcmVzcwAAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwkBAAAAEmtleUZhY3RvcnlDb250cmFjdAAAAAACAAAAFU5vIEZhY3RvcnkgQWNjIGZvdW5kLgEAAAAOY29udmVydEFzc2V0SWQAAAABAAAAB2Fzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAAdhc3NldElkAgAAAAVXQVZFUwUAAAAHYXNzZXRJZAEAAAARZGF0YVB1dEFjdGlvbkluZm8AAAAEAAAACWluQXNzZXRJZAAAAAppbkFzc2V0QW10AAAACHR4SGVpZ2h0AAAAC3R4VGltZXN0YW1wCQAEuQAAAAIJAARMAAAAAgIAAAAIJXMlZCVkJWQJAARMAAAAAgUAAAAJaW5Bc3NldElkCQAETAAAAAIJAAGkAAAAAQUAAAAKaW5Bc3NldEFtdAkABEwAAAACCQABpAAAAAEFAAAACHR4SGVpZ2h0CQAETAAAAAIJAAGkAAAAAQUAAAALdHhUaW1lc3RhbXAFAAAAA25pbAUAAAADU0VQAQAAABRkYXRhSW52ZXN0QWN0aW9uSW5mbwAAAAQAAAARb3V0QW1vdW50QXNzZXRBbXQAAAAQb3V0UHJpY2VBc3NldEFtdAAAAAh0eEhlaWdodAAAAAt0eFRpbWVzdGFtcAkABLkAAAACCQAETAAAAAICAAAACCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAARb3V0QW1vdW50QXNzZXRBbXQJAARMAAAAAgkAAaQAAAABBQAAABBvdXRQcmljZUFzc2V0QW10CQAETAAAAAIJAAGkAAAAAQUAAAAIdHhIZWlnaHQJAARMAAAAAgkAAaQAAAABBQAAAAt0eFRpbWVzdGFtcAUAAAADbmlsBQAAAANTRVABAAAACGFzU3RyaW5nAAAAAQAAAAN2YWwEAAAAByRtYXRjaDAFAAAAA3ZhbAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZ2YWxTdHIFAAAAByRtYXRjaDAFAAAABnZhbFN0cgkAAAIAAAABAgAAABhmYWlsIHRvIGNhc3QgaW50byBTdHJpbmcBAAAAB3RvU2NhbGUAAAADAAAAA2FtdAAAAAhyZXNTY2FsZQAAAAhjdXJTY2FsZQkAAGsAAAADBQAAAANhbXQFAAAACHJlc1NjYWxlBQAAAAhjdXJTY2FsZQAAAAMAAAABaQEAAAALY29uc3RydWN0b3IAAAABAAAAD2ZhY3RvcnlDb250cmFjdAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABJwZXJtaXNzaW9ucyBkZW5pZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleUZhY3RvcnlDb250cmFjdAAAAAAFAAAAD2ZhY3RvcnlDb250cmFjdAUAAAADbmlsAAAAAWkBAAAAA3B1dAAAAAAEAAAABHBvb2wJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAtwbXRBbXRBc3NldAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAKcG10QXNzZXRJZAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAtwbXRBbXRBc3NldAAAAAdhc3NldElkAgAAAAVXQVZFUwkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAUAAAALcG10QW10QXNzZXQAAAAHYXNzZXRJZAQAAAALcG10QXNzZXRBbXQIBQAAAAtwbXRBbXRBc3NldAAAAAZhbW91bnQEAAAACnBvb2xBc3NldHMJAAS1AAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAAEcG9vbAIAAAAOSW52YWxpZCBjYWxsZXIFAAAAA1NFUAQAAAANYW1vdW50QXNzZXRJZAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAEEAAAADHByaWNlQXNzZXRJZAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAIEAAAAC2Ftb3VudEFzc2V0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAAAAAEFAAAADWFtb3VudEFzc2V0SWQCAAAAEUNhbm5vdCBmaW5kIGFzc2V0BAAAAApwcmljZUFzc2V0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAAAAAEFAAAADHByaWNlQXNzZXRJZAIAAAARQ2Fubm90IGZpbmQgYXNzZXQEAAAACHRvdGFsQW10CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAABZrZXlQb29sVG90YWxBbXRCeUFzc2V0AAAAAgUAAAAEcG9vbAUAAAAKcG10QXNzZXRJZAAAAAAAAAAAAAQAAAAVY3VtdWxhdGl2ZVNsaXBwYWdlQW10CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAQAAACBrZXlTbGlwcGFnZUFtdFBlckFzc2V0Q3VtdWxhdGl2ZQAAAAIFAAAABHBvb2wFAAAACnBtdEFzc2V0SWQAAAAAAAAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADmtleVJlZ2lzdGVyUHV0AAAAAgUAAAAEcG9vbAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQEAAAARZGF0YVB1dEFjdGlvbkluZm8AAAAEBQAAAApwbXRBc3NldElkBQAAAAtwbXRBc3NldEFtdAUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQAAAACBQAAAARwb29sBQAAAApwbXRBc3NldElkCQAAZAAAAAIFAAAACHRvdGFsQW10BQAAAAtwbXRBc3NldEFtdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAIGtleVNsaXBwYWdlQW10UGVyQXNzZXRDdW11bGF0aXZlAAAAAgUAAAAEcG9vbAUAAAAKcG10QXNzZXRJZAkAAGQAAAACBQAAABVjdW11bGF0aXZlU2xpcHBhZ2VBbXQFAAAAC3BtdEFzc2V0QW10BQAAAANuaWwAAAABaQEAAAAGaW52ZXN0AAAAAQAAAA5wb29sQWRkcmVzc1N0cgQAAAALcG9vbEFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAA5wb29sQWRkcmVzc1N0cgIAAAAUaW52YWxpZCBwb29sIGFkZHJlc3MEAAAACnBvb2xBc3NldHMJAAS1AAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAAOcG9vbEFkZHJlc3NTdHICAAAAFEludmFsaWQgcG9vbCBwYXNzZWQuBQAAAANTRVAEAAAABGFtSWQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAECAAAAFk5vIGFzc2V0IG1hcHBpbmcgZm91bmQEAAAABHBySWQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAICAAAAFk5vIGFzc2V0IG1hcHBpbmcgZm91bmQEAAAACWFtQmFsYW5jZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAWa2V5UG9vbFRvdGFsQW10QnlBc3NldAAAAAIFAAAADnBvb2xBZGRyZXNzU3RyBQAAAARhbUlkAAAAAAAAAAAABAAAAAlwckJhbGFuY2UJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQAAAACBQAAAA5wb29sQWRkcmVzc1N0cgUAAAAEcHJJZAAAAAAAAAAAAAQAAAANZXN0QnlQclJlc3VsdAkAA/wAAAAEBQAAAAtwb29sQWRkcmVzcwIAAAAfZXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQkABEwAAAACBQAAAAlwckJhbGFuY2UFAAAAA25pbAUAAAADbmlsBAAAAA1lc3RCeUFtUmVzdWx0CQAD/AAAAAQFAAAAC3Bvb2xBZGRyZXNzAgAAACBldmFsdWF0ZVB1dEJ5QW1vdW50QXNzZXRSRUFET05MWQkABEwAAAACBQAAAAlhbUJhbGFuY2UFAAAAA25pbAUAAAADbmlsBAAAAA5JZHhFc3RBbUFtb3VudAAAAAAAAAAABwQAAAAOSWR4RXN0UHJBbW91bnQAAAAAAAAAAAgEAAAACGVzdEFtQW10CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACCQAEtQAAAAIJAQAAAAhhc1N0cmluZwAAAAEFAAAADWVzdEJ5UHJSZXN1bHQFAAAAA1NFUAUAAAAOSWR4RXN0QW1BbW91bnQCAAAAJmZhaWwgdG8gcGFyc2UgZXN0aW1hdGVkIGFtQXNzZXQgYW1vdW50BAAAAAhlc3RQckFtdAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgkABLUAAAACCQEAAAAIYXNTdHJpbmcAAAABBQAAAA1lc3RCeUFtUmVzdWx0BQAAAANTRVAFAAAADklkeEVzdFByQW1vdW50AgAAACZmYWlsIHRvIHBhcnNlIGVzdGltYXRlZCBwckFzc2V0IGFtb3VudAQAAAALJHQwNjAzNDYxMzUDCQAAZwAAAAIFAAAACWFtQmFsYW5jZQUAAAAIZXN0QW1BbXQJAAUUAAAAAgUAAAAIZXN0QW1BbXQFAAAACXByQmFsYW5jZQkABRQAAAACBQAAAAlhbUJhbGFuY2UFAAAACGVzdFByQW10BAAAAAVhbUFtdAgFAAAACyR0MDYwMzQ2MTM1AAAAAl8xBAAAAAVwckFtdAgFAAAACyR0MDYwMzQ2MTM1AAAAAl8yBAAAAAlhbUFzc2V0SWQDCQAAAAAAAAIFAAAABGFtSWQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAABGFtSWQEAAAACXByQXNzZXRJZAMJAAAAAAAAAgUAAAAEcHJJZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAEcHJJZAQAAAAFbHBQdXQJAAP8AAAABAUAAAALcG9vbEFkZHJlc3MCAAAACnB1dEZvckZyZWUJAARMAAAAAgAAAAAAAAAD6AUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAlhbUFzc2V0SWQFAAAABWFtQW10CQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACBQAAAAlwckFzc2V0SWQFAAAABXByQW10BQAAAANuaWwDCQAAAAAAAAIFAAAABWxwUHV0BQAAAAVscFB1dAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5UmVnaXN0ZXJJbnZlc3QAAAACBQAAAA5wb29sQWRkcmVzc1N0cgkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkCQEAAAAUZGF0YUludmVzdEFjdGlvbkluZm8AAAAEBQAAAAVhbUFtdAUAAAAFcHJBbXQFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlQb29sVG90YWxBbXRCeUFzc2V0AAAAAgUAAAAOcG9vbEFkZHJlc3NTdHIFAAAABGFtSWQJAABlAAAAAgUAAAAJYW1CYWxhbmNlBQAAAAVhbUFtdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQAAAACBQAAAA5wb29sQWRkcmVzc1N0cgUAAAAEcHJJZAkAAGUAAAACBQAAAAlwckJhbGFuY2UFAAAABXByQW10BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmvrONr", "chainId": 84, "height": 1757665, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GTEonpwdJaU8CCGSqWb5un4B6xgZhQ1smkTBdLNzJMgt Next: none Diff:
OldNewDifferences
117117
118118
119119 @Callable(Z)
120-func invest (p) = {
121- let ae = split(valueOrErrorMessage(getString(H, x(p)), "Invalid pool passed."), a)
122- let al = valueOrErrorMessage(getString(H, z(parseIntValue(ae[1]))), "No asset mapping found")
123- let am = valueOrErrorMessage(getString(H, z(parseIntValue(ae[2]))), "No asset mapping found")
124- let an = split(valueOrErrorMessage(getString(H, B(ae[1], ae[2])), "No factory config found for pool assets."), a)
125- let ao = parseIntValue(an[i])
126- let ap = parseIntValue(an[j])
127- let aq = V(valueOrElse(getInteger(this, s(p, al)), 0), b, ao)
128- let ar = V(valueOrElse(getInteger(this, s(p, am)), 0), b, ap)
129- let as = R(invoke(addressFromStringValue(p), "statsREADONLY", nil, nil))
130- if ((as == as))
131- then {
132- let at = parseIntValue(split(as, a)[c])
133- let au = fraction(at, aq, b)
134- let av = if ((au > ar))
135- then $Tuple2(fraction(ar, b, at), ar)
136- else $Tuple2(aq, au)
137- let aw = V(av._1, ao, b)
138- let ax = V(av._2, ap, b)
139- let ay = if ((al == "WAVES"))
140- then unit
141- else fromBase58String(al)
142- let ag = if ((am == "WAVES"))
143- then unit
144- else fromBase58String(am)
145- let az = invoke(addressFromStringValue(p), "putForFree", [1000], [AttachedPayment(ay, aw), AttachedPayment(ag, ax)])
146- if ((az == az))
147- then [StringEntry(r(p, toBase58String(Z.transactionId)), O(aw, ax, height, lastBlock.timestamp))]
148- else throw("Strict value is not equal to itself.")
149- }
120+func invest (al) = {
121+ let p = valueOrErrorMessage(addressFromString(al), "invalid pool address")
122+ let ae = split(valueOrErrorMessage(getString(H, x(al)), "Invalid pool passed."), a)
123+ let am = valueOrErrorMessage(getString(H, z(parseIntValue(ae[1]))), "No asset mapping found")
124+ let an = valueOrErrorMessage(getString(H, z(parseIntValue(ae[2]))), "No asset mapping found")
125+ let ao = valueOrElse(getInteger(this, s(al, am)), 0)
126+ let ap = valueOrElse(getInteger(this, s(al, an)), 0)
127+ let aq = invoke(p, "evaluatePutByPriceAssetREADONLY", [ap], nil)
128+ let ar = invoke(p, "evaluatePutByAmountAssetREADONLY", [ao], nil)
129+ let as = 7
130+ let at = 8
131+ let au = valueOrErrorMessage(parseIntValue(split(R(aq), a)[as]), "fail to parse estimated amAsset amount")
132+ let av = valueOrErrorMessage(parseIntValue(split(R(ar), a)[at]), "fail to parse estimated prAsset amount")
133+ let aw = if ((ao >= au))
134+ then $Tuple2(au, ap)
135+ else $Tuple2(ao, av)
136+ let ax = aw._1
137+ let ay = aw._2
138+ let az = if ((am == "WAVES"))
139+ then unit
140+ else fromBase58String(am)
141+ let aA = if ((an == "WAVES"))
142+ then unit
143+ else fromBase58String(an)
144+ let aB = invoke(p, "putForFree", [1000], [AttachedPayment(az, ax), AttachedPayment(aA, ay)])
145+ if ((aB == aB))
146+ then [StringEntry(r(al, toBase58String(Z.transactionId)), O(ax, ay, height, lastBlock.timestamp)), IntegerEntry(s(al, am), (ao - ax)), IntegerEntry(s(al, an), (ap - ay))]
150147 else throw("Strict value is not equal to itself.")
151148 }
152149
153150
154-@Verifier(aA)
155-func aB () = sigVerify(aA.bodyBytes, aA.proofs[0], aA.senderPublicKey)
151+@Verifier(aC)
152+func aD () = sigVerify(aC.bodyBytes, aC.proofs[0], aC.senderPublicKey)
156153
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 4
99
1010 let d = 1
1111
1212 let e = 2
1313
1414 let f = 3
1515
1616 let g = 4
1717
1818 let h = 5
1919
2020 let i = 6
2121
2222 let j = 7
2323
2424 let k = 8
2525
2626 let l = 9
2727
2828 let m = 10
2929
3030 let n = 11
3131
3232 func o (p,q) = ((("%s%s%s__P__" + p) + "__") + q)
3333
3434
3535 func r (p,q) = ((("%s%s%s__invest__" + p) + "__") + q)
3636
3737
3838 func s (p,t) = ((("%s%s%s__total__" + p) + "__") + t)
3939
4040
4141 func u () = "%s__factoryContract"
4242
4343
4444 func v (p,t) = (((("%s%s%s__" + p) + "__") + t) + "__slippageCumulative")
4545
4646
4747 func w () = "%s__factoryConfig"
4848
4949
5050 func x (y) = (("%s%s%s__" + y) + "__mappings__poolContract2PoolAssets")
5151
5252
5353 func z (A) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(A))
5454
5555
5656 func B (C,D) = (((("%d%d%s__" + C) + "__") + D) + "__config")
5757
5858
5959 func E () = "%s__shutdown"
6060
6161
6262 func F (G) = ("%s%s__poolWeight__" + G)
6363
6464
6565 let H = addressFromStringValue(valueOrErrorMessage(getString(this, u()), "No Factory Acc found."))
6666
6767 func I (t) = if (!(isDefined(t)))
6868 then "WAVES"
6969 else t
7070
7171
7272 func J (K,L,M,N) = makeString(["%s%d%d%d", K, toString(L), toString(M), toString(N)], a)
7373
7474
7575 func O (P,Q,M,N) = makeString(["%d%d%d%d", toString(P), toString(Q), toString(M), toString(N)], a)
7676
7777
7878 func R (S) = {
7979 let T = S
8080 if ($isInstanceOf(T, "String"))
8181 then {
8282 let U = T
8383 U
8484 }
8585 else throw("fail to cast into String")
8686 }
8787
8888
8989 func V (W,X,Y) = fraction(W, X, Y)
9090
9191
9292 @Callable(Z)
9393 func constructor (H) = if ((Z.caller != this))
9494 then throw("permissions denied")
9595 else [StringEntry(u(), H)]
9696
9797
9898
9999 @Callable(Z)
100100 func put () = {
101101 let aa = toString(Z.caller)
102102 let ab = value(Z.payments[0])
103103 let ac = if (!(isDefined(ab.assetId)))
104104 then "WAVES"
105105 else toBase58String(value(ab.assetId))
106106 let ad = ab.amount
107107 let ae = split(valueOrErrorMessage(getString(H, x(aa)), "Invalid caller"), a)
108108 let af = parseIntValue(ae[1])
109109 let ag = parseIntValue(ae[2])
110110 let ah = valueOrErrorMessage(getString(H, z(af)), "Cannot find asset")
111111 let ai = valueOrErrorMessage(getString(H, z(ag)), "Cannot find asset")
112112 let aj = valueOrElse(getInteger(this, s(aa, ac)), 0)
113113 let ak = valueOrElse(getInteger(this, v(aa, ac)), 0)
114114 [StringEntry(o(aa, toBase58String(Z.transactionId)), J(ac, ad, height, lastBlock.timestamp)), IntegerEntry(s(aa, ac), (aj + ad)), IntegerEntry(v(aa, ac), (ak + ad))]
115115 }
116116
117117
118118
119119 @Callable(Z)
120-func invest (p) = {
121- let ae = split(valueOrErrorMessage(getString(H, x(p)), "Invalid pool passed."), a)
122- let al = valueOrErrorMessage(getString(H, z(parseIntValue(ae[1]))), "No asset mapping found")
123- let am = valueOrErrorMessage(getString(H, z(parseIntValue(ae[2]))), "No asset mapping found")
124- let an = split(valueOrErrorMessage(getString(H, B(ae[1], ae[2])), "No factory config found for pool assets."), a)
125- let ao = parseIntValue(an[i])
126- let ap = parseIntValue(an[j])
127- let aq = V(valueOrElse(getInteger(this, s(p, al)), 0), b, ao)
128- let ar = V(valueOrElse(getInteger(this, s(p, am)), 0), b, ap)
129- let as = R(invoke(addressFromStringValue(p), "statsREADONLY", nil, nil))
130- if ((as == as))
131- then {
132- let at = parseIntValue(split(as, a)[c])
133- let au = fraction(at, aq, b)
134- let av = if ((au > ar))
135- then $Tuple2(fraction(ar, b, at), ar)
136- else $Tuple2(aq, au)
137- let aw = V(av._1, ao, b)
138- let ax = V(av._2, ap, b)
139- let ay = if ((al == "WAVES"))
140- then unit
141- else fromBase58String(al)
142- let ag = if ((am == "WAVES"))
143- then unit
144- else fromBase58String(am)
145- let az = invoke(addressFromStringValue(p), "putForFree", [1000], [AttachedPayment(ay, aw), AttachedPayment(ag, ax)])
146- if ((az == az))
147- then [StringEntry(r(p, toBase58String(Z.transactionId)), O(aw, ax, height, lastBlock.timestamp))]
148- else throw("Strict value is not equal to itself.")
149- }
120+func invest (al) = {
121+ let p = valueOrErrorMessage(addressFromString(al), "invalid pool address")
122+ let ae = split(valueOrErrorMessage(getString(H, x(al)), "Invalid pool passed."), a)
123+ let am = valueOrErrorMessage(getString(H, z(parseIntValue(ae[1]))), "No asset mapping found")
124+ let an = valueOrErrorMessage(getString(H, z(parseIntValue(ae[2]))), "No asset mapping found")
125+ let ao = valueOrElse(getInteger(this, s(al, am)), 0)
126+ let ap = valueOrElse(getInteger(this, s(al, an)), 0)
127+ let aq = invoke(p, "evaluatePutByPriceAssetREADONLY", [ap], nil)
128+ let ar = invoke(p, "evaluatePutByAmountAssetREADONLY", [ao], nil)
129+ let as = 7
130+ let at = 8
131+ let au = valueOrErrorMessage(parseIntValue(split(R(aq), a)[as]), "fail to parse estimated amAsset amount")
132+ let av = valueOrErrorMessage(parseIntValue(split(R(ar), a)[at]), "fail to parse estimated prAsset amount")
133+ let aw = if ((ao >= au))
134+ then $Tuple2(au, ap)
135+ else $Tuple2(ao, av)
136+ let ax = aw._1
137+ let ay = aw._2
138+ let az = if ((am == "WAVES"))
139+ then unit
140+ else fromBase58String(am)
141+ let aA = if ((an == "WAVES"))
142+ then unit
143+ else fromBase58String(an)
144+ let aB = invoke(p, "putForFree", [1000], [AttachedPayment(az, ax), AttachedPayment(aA, ay)])
145+ if ((aB == aB))
146+ then [StringEntry(r(al, toBase58String(Z.transactionId)), O(ax, ay, height, lastBlock.timestamp)), IntegerEntry(s(al, am), (ao - ax)), IntegerEntry(s(al, an), (ap - ay))]
150147 else throw("Strict value is not equal to itself.")
151148 }
152149
153150
154-@Verifier(aA)
155-func aB () = sigVerify(aA.bodyBytes, aA.proofs[0], aA.senderPublicKey)
151+@Verifier(aC)
152+func aD () = sigVerify(aC.bodyBytes, aC.proofs[0], aC.senderPublicKey)
156153

github/deemru/w8io/026f985 
39.00 ms