tx · 8kuznLzHEABscZitMBk5NannaHhP3yZFWPby1SkdaQnb

3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq:  -0.01300000 Waves

2023.02.09 13:55 [2441999] smart account 3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq > SELF 0.00000000 Waves

{ "type": 13, "id": "8kuznLzHEABscZitMBk5NannaHhP3yZFWPby1SkdaQnb", "fee": 1300000, "feeAssetId": null, "timestamp": 1675940101815, "version": 1, "sender": "3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq", "senderPublicKey": "2u2wYYcVBQv43Cc71zkhHPPitkqgg6dqTZ3nUMvYJ1uq", "proofs": [ "3WhhZ1NznddauJyhzvBcBChKKE93FEnkQEqr8tnnuPcJRC3ZMJufBdSF9sREGPnGpmvdpyrp4E67zoRCSmtTsWr9" ], "script": "base64:BgIXCAISBQoDAQgIEgUKAwEICBIDCgEIEgAUAANTRVACAl9fAAhmZWVTY2FsZQkAtgIBAKCNBgEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQNrZXkADHBvb2xEaXNhYmxlZAkAAgECDVBvb2wgZGlzYWJsZWQADHBvb2xOb3RFeGlzdAkAAgECEVBvb2wgaXMgbm90IGV4aXN0AA5zbGlwcGFnZVRvb0JpZwkAAgECE1NsaXBwYWdlIGlzIHRvbyBiaWcBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAmZjAAITJXNfX2ZhY3RvcnlDb250cmFjdAAPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBAmZjAAEaZmVlUHJvdG9jb2xDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgIaZmVlUHJvdG9jb2xDb250cmFjdEFkZHJlc3MFA25pbAUDU0VQAAtmZWVDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEJARpmZWVQcm90b2NvbENvbnRyYWN0QWRkcmVzcwABC3Byb3RvY29sRmVlAAkAuQkCCQDMCAICAiVzCQDMCAICC3Byb3RvY29sRmVlBQNuaWwFA1NFUAEFYXNJbnQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACA0ludAQGdmFsSW50BQckbWF0Y2gwBQZ2YWxJbnQJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBFWRhdGFNYXBwaW5nUG9vbEFzc2V0cwIWaW50ZXJuYWxBbW91bnRBc3NldFN0chVpbnRlcm5hbFByaWNlQXNzZXRTdHIJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUWaW50ZXJuYWxBbW91bnRBc3NldFN0cgkAzAgCCQCkAwEFFWludGVybmFsUHJpY2VBc3NldFN0cgUDbmlsBQNTRVABFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEJaXNNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQJAAACCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkDCQEJaXNNYW5hZ2VyAQUBaQYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAENZ2V0QWNjQmFsYW5jZQEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQdhc3NldElkBAFpARVzd2FwQ2FsY3VsYXRlUkVBRE9OTFkDCGFtb3VudEluB2Fzc2V0SW4IYXNzZXRPdXQEBXByRmVlCQEFdmFsdWUBCQCfCAEJAQtwcm90b2NvbEZlZQAEFWZlZVByb3RvY29sQW1vdW50Q2FsYwkAvAIDCQC2AgEFCGFtb3VudEluCQC2AgEFBXByRmVlBQhmZWVTY2FsZQQRZmVlUHJvdG9jb2xBbW91bnQDCQAAAgkAoAMBBRVmZWVQcm90b2NvbEFtb3VudENhbGMAAAkAtgIBAAEFFWZlZVByb3RvY29sQW1vdW50Q2FsYwQNY2xlYW5BbW91bnRJbgkAuAICCQC2AgEFCGFtb3VudEluBRFmZWVQcm90b2NvbEFtb3VudAQMbHBOb25SZXZlcnNlCQD8BwQFD2ZhY3RvcnlDb250cmFjdAIgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkJAMwIAgUHYXNzZXRJbgkAzAgCBQhhc3NldE91dAUDbmlsBQNuaWwECWxwUmV2ZXJzZQkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZCQDMCAIFCGFzc2V0T3V0CQDMCAIFB2Fzc2V0SW4FA25pbAUDbmlsBAskdDAyNjE2MzExOQMJAQIhPQIFDGxwTm9uUmV2ZXJzZQUEdW5pdAQJaXNSZXZlcnNlBwQEcG9vbAoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AiFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkJAMwIAgUMbHBOb25SZXZlcnNlBQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBBQFAAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcJAJQKAgUJaXNSZXZlcnNlBQRwb29sAwkBAiE9AgUJbHBSZXZlcnNlBQR1bml0BAlpc1JldmVyc2UGBARwb29sCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQkAzAgCBQlscFJldmVyc2UFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQlpc1JldmVyc2UFBHBvb2wFDHBvb2xOb3RFeGlzdAQJaXNSZXZlcnNlCAULJHQwMjYxNjMxMTkCXzEEBHBvb2wIBQskdDAyNjE2MzExOQJfMgQKcG9vbFN0YXR1cwoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AhVnZXRQb29sU3RhdHVzUkVBRE9OTFkJAMwIAgUEcG9vbAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAVjaGVjawMJAAACBQpwb29sU3RhdHVzAAEGBQxwb29sRGlzYWJsZWQDCQAAAgUFY2hlY2sFBWNoZWNrBAdwb29sQWRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQELdmFsdWVPckVsc2UCBQRwb29sAgAEA3JlcwoAAUAJAPwHBAUHcG9vbEFkcgIhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZCQDMCAIJAKADAQUNY2xlYW5BbW91bnRJbgkAzAgCBQlpc1JldmVyc2UFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEFAUACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAkAlAoCBQNuaWwFA3JlcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQRzd2FwAwxhbW91bnRPdXRNaW4IYXNzZXRPdXQJYWRkcmVzc1RvBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQHYXNzZXRJbgMJAAACCAUDcG10B2Fzc2V0SWQFBHVuaXQJAJsDAQIFV0FWRVMJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAQIYW1vdW50SW4JAQV2YWx1ZQEIBQNwbXQGYW1vdW50BAVwckZlZQkBBXZhbHVlAQkAnwgBCQELcHJvdG9jb2xGZWUABBVmZWVQcm90b2NvbEFtb3VudENhbGMJALwCAwkAtgIBBQhhbW91bnRJbgkAtgIBBQVwckZlZQUIZmVlU2NhbGUEEWZlZVByb3RvY29sQW1vdW50AwkAAAIJAKADAQUVZmVlUHJvdG9jb2xBbW91bnRDYWxjAAAJALYCAQABBRVmZWVQcm90b2NvbEFtb3VudENhbGMEDWNsZWFuQW1vdW50SW4JALgCAgkAtgIBBQhhbW91bnRJbgURZmVlUHJvdG9jb2xBbW91bnQEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAAIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQMbHBOb25SZXZlcnNlCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZCQDMCAIJANgEAQUHYXNzZXRJbgkAzAgCBQhhc3NldE91dAUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFABQR1bml0BAlscFJldmVyc2UKAAFACQD8BwQFD2ZhY3RvcnlDb250cmFjdAIgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkJAMwIAgUIYXNzZXRPdXQJAMwIAgkA2AQBBQdhc3NldEluBQNuaWwFA25pbAMJAAECBQFAAgZTdHJpbmcFAUAFBHVuaXQECyR0MDQ0ODk1MDA4AwkBAiE9AgUMbHBOb25SZXZlcnNlBQR1bml0BAlpc1JldmVyc2UHBARwb29sCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQkAzAgCCQEFdmFsdWUBBQxscE5vblJldmVyc2UFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEFAUACGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQlpc1JldmVyc2UFBHBvb2wDCQECIT0CBQlscFJldmVyc2UFBHVuaXQECWlzUmV2ZXJzZQYEBHBvb2wKAAFACQD8BwQFD2ZhY3RvcnlDb250cmFjdAIhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZCQDMCAIJAQV2YWx1ZQEFCWxwUmV2ZXJzZQUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQUBQAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQCUCgIFCWlzUmV2ZXJzZQUEcG9vbAUMcG9vbE5vdEV4aXN0BAlpc1JldmVyc2UIBQskdDA0NDg5NTAwOAJfMQQEcG9vbAgFCyR0MDQ0ODk1MDA4Al8yBApwb29sU3RhdHVzCgABQAkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCFWdldFBvb2xTdGF0dXNSRUFET05MWQkAzAgCBQRwb29sBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBBQFAAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEBWNoZWNrAwkAAAIFCnBvb2xTdGF0dXMAAQYFDHBvb2xEaXNhYmxlZAMJAAACBQVjaGVjawUFY2hlY2sEB3Bvb2xBZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBHBvb2wEC3RvdGFsR2V0UmF3CgABQAkA/AcEBQdwb29sQWRyAiZjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwQW5kU2VuZFRva2VucwkAzAgCCQCgAwEFDWNsZWFuQW1vdW50SW4JAMwIAgUJaXNSZXZlcnNlCQDMCAIFDGFtb3VudE91dE1pbgkAzAgCBQlhZGRyZXNzVG8FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHYXNzZXRJbgkAoAMBBQ1jbGVhbkFtb3VudEluBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQUBQAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CQCUCgIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULZmVlQ29udHJhY3QJAKADAQURZmVlUHJvdG9jb2xBbW91bnQFB2Fzc2V0SW4FA25pbAULdG90YWxHZXRSYXcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQACAQISbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkAAgECG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQdjaGVja1BNBQdjaGVja1BNCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlNYW5hZ2VyUHVibGljS2V5AAkA2AQBCQEFdmFsdWUBBQJwbQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXnS9Vgd", "chainId": 84, "height": 2441999, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2pbdCX2RaEkDoaQn6Lwt5kGFMm7jQLUsw2KKywQcXkRx Next: 45dDeyhUhVVjpKMDBZyhGQMTpoidFAMpjSfunZ7dDsWz Diff:
OldNewDifferences
102102 let I = fraction(toBigInt(E), toBigInt(H), b)
103103 let J = if ((toInt(I) == 0))
104104 then toBigInt(1)
105- else (toBigInt(E) - I)
106- let K = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [F, G], nil)
107- let L = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, F], nil)
108- let M = if ((K != unit))
105+ else I
106+ let K = (toBigInt(E) - J)
107+ let L = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [F, G], nil)
108+ let M = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, F], nil)
109+ let N = if ((L != unit))
109110 then {
110- let N = false
111- let O = {
112- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [K], nil)
113- if ($isInstanceOf(P, "String"))
114- then P
115- else throw(($getType(P) + " couldn't be cast to String"))
111+ let O = false
112+ let P = {
113+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [L], nil)
114+ if ($isInstanceOf(Q, "String"))
115+ then Q
116+ else throw(($getType(Q) + " couldn't be cast to String"))
116117 }
117- $Tuple2(N, O)
118+ $Tuple2(O, P)
118119 }
119- else if ((L != unit))
120+ else if ((M != unit))
120121 then {
121- let N = true
122- let O = {
123- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [L], nil)
124- if ($isInstanceOf(P, "String"))
125- then P
126- else throw(($getType(P) + " couldn't be cast to String"))
122+ let O = true
123+ let P = {
124+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [M], nil)
125+ if ($isInstanceOf(Q, "String"))
126+ then Q
127+ else throw(($getType(Q) + " couldn't be cast to String"))
127128 }
128- $Tuple2(N, O)
129+ $Tuple2(O, P)
129130 }
130131 else f
131- let N = M._1
132- let O = M._2
133- let Q = {
134- let P = invoke(k, "getPoolStatusREADONLY", [O], nil)
135- if ($isInstanceOf(P, "Int"))
136- then P
137- else throw(($getType(P) + " couldn't be cast to Int"))
132+ let O = N._1
133+ let P = N._2
134+ let R = {
135+ let Q = invoke(k, "getPoolStatusREADONLY", [P], nil)
136+ if ($isInstanceOf(Q, "Int"))
137+ then Q
138+ else throw(($getType(Q) + " couldn't be cast to Int"))
138139 }
139- let R = if ((Q == 1))
140+ let S = if ((R == 1))
140141 then true
141142 else e
142- if ((R == R))
143+ if ((S == S))
143144 then {
144- let S = addressFromStringValue(valueOrElse(O, ""))
145- let T = {
146- let P = invoke(S, "calculateAmountOutForSwapREADONLY", [toInt(J), N], nil)
147- if ($isInstanceOf(P, "Int"))
148- then P
149- else throw(($getType(P) + " couldn't be cast to Int"))
145+ let T = addressFromStringValue(valueOrElse(P, ""))
146+ let U = {
147+ let Q = invoke(T, "calculateAmountOutForSwapREADONLY", [toInt(K), O], nil)
148+ if ($isInstanceOf(Q, "Int"))
149+ then Q
150+ else throw(($getType(Q) + " couldn't be cast to Int"))
150151 }
151- $Tuple2(nil, T)
152+ $Tuple2(nil, U)
152153 }
153154 else throw("Strict value is not equal to itself.")
154155 }
156157
157158
158159 @Callable(z)
159-func swap (U,G,V) = {
160- let W = value(z.payments[0])
161- let F = if ((W.assetId == unit))
160+func swap (V,G,W) = {
161+ let X = value(z.payments[0])
162+ let F = if ((X.assetId == unit))
162163 then toBytes("WAVES")
163- else value(W.assetId)
164- let E = value(W.amount)
164+ else value(X.assetId)
165+ let E = value(X.amount)
165166 let H = value(getInteger(n()))
166167 let I = fraction(toBigInt(E), toBigInt(H), b)
167- let J = (toBigInt(E) - I)
168- let X = [if ((size(z.payments) == 1))
168+ let J = if ((toInt(I) == 0))
169+ then toBigInt(1)
170+ else I
171+ let K = (toBigInt(E) - J)
172+ let Y = [if ((size(z.payments) == 1))
169173 then true
170174 else throw("exactly 1 payment are expected")]
171- if ((X == X))
175+ if ((Y == Y))
172176 then {
173- let K = {
174- let P = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(F), G], nil)
175- if ($isInstanceOf(P, "String"))
176- then P
177+ let L = {
178+ let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(F), G], nil)
179+ if ($isInstanceOf(Q, "String"))
180+ then Q
177181 else unit
178182 }
179- let L = {
180- let P = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, toBase58String(F)], nil)
181- if ($isInstanceOf(P, "String"))
182- then P
183+ let M = {
184+ let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, toBase58String(F)], nil)
185+ if ($isInstanceOf(Q, "String"))
186+ then Q
183187 else unit
184188 }
185- let Y = if ((K != unit))
189+ let Z = if ((L != unit))
186190 then {
187- let N = false
188- let O = {
189- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(K)], nil)
190- if ($isInstanceOf(P, "String"))
191- then P
192- else throw(($getType(P) + " couldn't be cast to String"))
191+ let O = false
192+ let P = {
193+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(L)], nil)
194+ if ($isInstanceOf(Q, "String"))
195+ then Q
196+ else throw(($getType(Q) + " couldn't be cast to String"))
193197 }
194- $Tuple2(N, O)
198+ $Tuple2(O, P)
195199 }
196- else if ((L != unit))
200+ else if ((M != unit))
197201 then {
198- let N = true
199- let O = {
200- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(L)], nil)
201- if ($isInstanceOf(P, "String"))
202- then P
203- else throw(($getType(P) + " couldn't be cast to String"))
202+ let O = true
203+ let P = {
204+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(M)], nil)
205+ if ($isInstanceOf(Q, "String"))
206+ then Q
207+ else throw(($getType(Q) + " couldn't be cast to String"))
204208 }
205- $Tuple2(N, O)
209+ $Tuple2(O, P)
206210 }
207211 else f
208- let N = Y._1
209- let O = Y._2
210- let Q = {
211- let P = invoke(k, "getPoolStatusREADONLY", [O], nil)
212- if ($isInstanceOf(P, "Int"))
213- then P
214- else throw(($getType(P) + " couldn't be cast to Int"))
212+ let O = Z._1
213+ let P = Z._2
214+ let R = {
215+ let Q = invoke(k, "getPoolStatusREADONLY", [P], nil)
216+ if ($isInstanceOf(Q, "Int"))
217+ then Q
218+ else throw(($getType(Q) + " couldn't be cast to Int"))
215219 }
216- let R = if ((Q == 1))
220+ let S = if ((R == 1))
217221 then true
218222 else e
219- if ((R == R))
223+ if ((S == S))
220224 then {
221- let S = addressFromStringValue(O)
222- let Z = {
223- let P = invoke(S, "calculateAmountOutForSwapAndSendTokens", [toInt(J), N, U, V], [AttachedPayment(F, toInt(J))])
224- if ($isInstanceOf(P, "Int"))
225- then P
226- else throw(($getType(P) + " couldn't be cast to Int"))
225+ let T = addressFromStringValue(P)
226+ let aa = {
227+ let Q = invoke(T, "calculateAmountOutForSwapAndSendTokens", [toInt(K), O, V, W], [AttachedPayment(F, toInt(K))])
228+ if ($isInstanceOf(Q, "Int"))
229+ then Q
230+ else throw(($getType(Q) + " couldn't be cast to Int"))
227231 }
228- $Tuple2([ScriptTransfer(m, toInt(I), F)], Z)
232+ $Tuple2([ScriptTransfer(m, toInt(J), F)], aa)
229233 }
230234 else throw("Strict value is not equal to itself.")
231235 }
235239
236240
237241 @Callable(z)
238-func setManager (aa) = {
239- let ab = B(z)
240- if ((ab == ab))
242+func setManager (ab) = {
243+ let ac = B(z)
244+ if ((ac == ac))
241245 then {
242- let ac = fromBase58String(aa)
243- if ((ac == ac))
244- then [StringEntry(i(), aa)]
246+ let ad = fromBase58String(ab)
247+ if ((ad == ad))
248+ then [StringEntry(i(), ab)]
245249 else throw("Strict value is not equal to itself.")
246250 }
247251 else throw("Strict value is not equal to itself.")
251255
252256 @Callable(z)
253257 func confirmManager () = {
254- let ad = x()
255- let ae = if (isDefined(ad))
258+ let ae = x()
259+ let af = if (isDefined(ae))
256260 then true
257261 else throw("no pending manager")
258- if ((ae == ae))
262+ if ((af == af))
259263 then {
260- let af = if ((z.callerPublicKey == value(ad)))
264+ let ag = if ((z.callerPublicKey == value(ae)))
261265 then true
262266 else throw("you are not pending manager")
263- if ((af == af))
264- then [StringEntry(h(), toBase58String(value(ad))), DeleteEntry(i())]
267+ if ((ag == ag))
268+ then [StringEntry(h(), toBase58String(value(ae))), DeleteEntry(i())]
265269 else throw("Strict value is not equal to itself.")
266270 }
267271 else throw("Strict value is not equal to itself.")
268272 }
269273
270274
271-@Verifier(ag)
272-func ah () = {
273- let ai = {
275+@Verifier(ah)
276+func ai () = {
277+ let aj = {
274278 let q = v()
275279 if ($isInstanceOf(q, "ByteVector"))
276280 then {
278282 A
279283 }
280284 else if ($isInstanceOf(q, "Unit"))
281- then ag.senderPublicKey
285+ then ah.senderPublicKey
282286 else throw("Match error")
283287 }
284- sigVerify(ag.bodyBytes, ag.proofs[0], ai)
288+ sigVerify(ah.bodyBytes, ah.proofs[0], aj)
285289 }
286290
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = toBigInt(100000)
77
88 func c (d) = valueOrErrorMessage(getString(this, d), ("No data for this.key=" + d))
99
1010
1111 let e = throw("Pool disabled")
1212
1313 let f = throw("Pool is not exist")
1414
1515 let g = throw("Slippage is too big")
1616
1717 func h () = "%s__managerPublicKey"
1818
1919
2020 func i () = "%s__pendingManagerPublicKey"
2121
2222
2323 func j () = "%s__factoryContract"
2424
2525
2626 let k = addressFromStringValue(c(j()))
2727
2828 func l () = makeString(["%s", "feeProtocolContractAddress"], a)
2929
3030
3131 let m = addressFromStringValue(c(l()))
3232
3333 func n () = makeString(["%s", "protocolFee"], a)
3434
3535
3636 func o (p) = {
3737 let q = p
3838 if ($isInstanceOf(q, "Int"))
3939 then {
4040 let r = q
4141 r
4242 }
4343 else throw("fail to cast into Int")
4444 }
4545
4646
4747 func s (t,u) = makeString(["%d%d", toString(t), toString(u)], a)
4848
4949
5050 func v () = {
5151 let q = getString(h())
5252 if ($isInstanceOf(q, "String"))
5353 then {
5454 let w = q
5555 fromBase58String(w)
5656 }
5757 else if ($isInstanceOf(q, "Unit"))
5858 then unit
5959 else throw("Match error")
6060 }
6161
6262
6363 func x () = {
6464 let q = getString(i())
6565 if ($isInstanceOf(q, "String"))
6666 then {
6767 let w = q
6868 fromBase58String(w)
6969 }
7070 else if ($isInstanceOf(q, "Unit"))
7171 then unit
7272 else throw("Match error")
7373 }
7474
7575
7676 func y (z) = {
7777 let q = v()
7878 if ($isInstanceOf(q, "ByteVector"))
7979 then {
8080 let A = q
8181 (z.callerPublicKey == A)
8282 }
8383 else if ($isInstanceOf(q, "Unit"))
8484 then (z.caller == this)
8585 else throw("Match error")
8686 }
8787
8888
8989 func B (z) = if (y(z))
9090 then true
9191 else throw("permission denied")
9292
9393
9494 func C (D) = if ((D == "WAVES"))
9595 then wavesBalance(this).available
9696 else assetBalance(this, fromBase58String(D))
9797
9898
9999 @Callable(z)
100100 func swapCalculateREADONLY (E,F,G) = {
101101 let H = value(getInteger(n()))
102102 let I = fraction(toBigInt(E), toBigInt(H), b)
103103 let J = if ((toInt(I) == 0))
104104 then toBigInt(1)
105- else (toBigInt(E) - I)
106- let K = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [F, G], nil)
107- let L = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, F], nil)
108- let M = if ((K != unit))
105+ else I
106+ let K = (toBigInt(E) - J)
107+ let L = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [F, G], nil)
108+ let M = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, F], nil)
109+ let N = if ((L != unit))
109110 then {
110- let N = false
111- let O = {
112- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [K], nil)
113- if ($isInstanceOf(P, "String"))
114- then P
115- else throw(($getType(P) + " couldn't be cast to String"))
111+ let O = false
112+ let P = {
113+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [L], nil)
114+ if ($isInstanceOf(Q, "String"))
115+ then Q
116+ else throw(($getType(Q) + " couldn't be cast to String"))
116117 }
117- $Tuple2(N, O)
118+ $Tuple2(O, P)
118119 }
119- else if ((L != unit))
120+ else if ((M != unit))
120121 then {
121- let N = true
122- let O = {
123- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [L], nil)
124- if ($isInstanceOf(P, "String"))
125- then P
126- else throw(($getType(P) + " couldn't be cast to String"))
122+ let O = true
123+ let P = {
124+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [M], nil)
125+ if ($isInstanceOf(Q, "String"))
126+ then Q
127+ else throw(($getType(Q) + " couldn't be cast to String"))
127128 }
128- $Tuple2(N, O)
129+ $Tuple2(O, P)
129130 }
130131 else f
131- let N = M._1
132- let O = M._2
133- let Q = {
134- let P = invoke(k, "getPoolStatusREADONLY", [O], nil)
135- if ($isInstanceOf(P, "Int"))
136- then P
137- else throw(($getType(P) + " couldn't be cast to Int"))
132+ let O = N._1
133+ let P = N._2
134+ let R = {
135+ let Q = invoke(k, "getPoolStatusREADONLY", [P], nil)
136+ if ($isInstanceOf(Q, "Int"))
137+ then Q
138+ else throw(($getType(Q) + " couldn't be cast to Int"))
138139 }
139- let R = if ((Q == 1))
140+ let S = if ((R == 1))
140141 then true
141142 else e
142- if ((R == R))
143+ if ((S == S))
143144 then {
144- let S = addressFromStringValue(valueOrElse(O, ""))
145- let T = {
146- let P = invoke(S, "calculateAmountOutForSwapREADONLY", [toInt(J), N], nil)
147- if ($isInstanceOf(P, "Int"))
148- then P
149- else throw(($getType(P) + " couldn't be cast to Int"))
145+ let T = addressFromStringValue(valueOrElse(P, ""))
146+ let U = {
147+ let Q = invoke(T, "calculateAmountOutForSwapREADONLY", [toInt(K), O], nil)
148+ if ($isInstanceOf(Q, "Int"))
149+ then Q
150+ else throw(($getType(Q) + " couldn't be cast to Int"))
150151 }
151- $Tuple2(nil, T)
152+ $Tuple2(nil, U)
152153 }
153154 else throw("Strict value is not equal to itself.")
154155 }
155156
156157
157158
158159 @Callable(z)
159-func swap (U,G,V) = {
160- let W = value(z.payments[0])
161- let F = if ((W.assetId == unit))
160+func swap (V,G,W) = {
161+ let X = value(z.payments[0])
162+ let F = if ((X.assetId == unit))
162163 then toBytes("WAVES")
163- else value(W.assetId)
164- let E = value(W.amount)
164+ else value(X.assetId)
165+ let E = value(X.amount)
165166 let H = value(getInteger(n()))
166167 let I = fraction(toBigInt(E), toBigInt(H), b)
167- let J = (toBigInt(E) - I)
168- let X = [if ((size(z.payments) == 1))
168+ let J = if ((toInt(I) == 0))
169+ then toBigInt(1)
170+ else I
171+ let K = (toBigInt(E) - J)
172+ let Y = [if ((size(z.payments) == 1))
169173 then true
170174 else throw("exactly 1 payment are expected")]
171- if ((X == X))
175+ if ((Y == Y))
172176 then {
173- let K = {
174- let P = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(F), G], nil)
175- if ($isInstanceOf(P, "String"))
176- then P
177+ let L = {
178+ let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [toBase58String(F), G], nil)
179+ if ($isInstanceOf(Q, "String"))
180+ then Q
177181 else unit
178182 }
179- let L = {
180- let P = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, toBase58String(F)], nil)
181- if ($isInstanceOf(P, "String"))
182- then P
183+ let M = {
184+ let Q = invoke(k, "getLpAssetFromPoolAssetsREADONLY", [G, toBase58String(F)], nil)
185+ if ($isInstanceOf(Q, "String"))
186+ then Q
183187 else unit
184188 }
185- let Y = if ((K != unit))
189+ let Z = if ((L != unit))
186190 then {
187- let N = false
188- let O = {
189- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(K)], nil)
190- if ($isInstanceOf(P, "String"))
191- then P
192- else throw(($getType(P) + " couldn't be cast to String"))
191+ let O = false
192+ let P = {
193+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(L)], nil)
194+ if ($isInstanceOf(Q, "String"))
195+ then Q
196+ else throw(($getType(Q) + " couldn't be cast to String"))
193197 }
194- $Tuple2(N, O)
198+ $Tuple2(O, P)
195199 }
196- else if ((L != unit))
200+ else if ((M != unit))
197201 then {
198- let N = true
199- let O = {
200- let P = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(L)], nil)
201- if ($isInstanceOf(P, "String"))
202- then P
203- else throw(($getType(P) + " couldn't be cast to String"))
202+ let O = true
203+ let P = {
204+ let Q = invoke(k, "getPoolAddressFromLpAssetREADONLY", [value(M)], nil)
205+ if ($isInstanceOf(Q, "String"))
206+ then Q
207+ else throw(($getType(Q) + " couldn't be cast to String"))
204208 }
205- $Tuple2(N, O)
209+ $Tuple2(O, P)
206210 }
207211 else f
208- let N = Y._1
209- let O = Y._2
210- let Q = {
211- let P = invoke(k, "getPoolStatusREADONLY", [O], nil)
212- if ($isInstanceOf(P, "Int"))
213- then P
214- else throw(($getType(P) + " couldn't be cast to Int"))
212+ let O = Z._1
213+ let P = Z._2
214+ let R = {
215+ let Q = invoke(k, "getPoolStatusREADONLY", [P], nil)
216+ if ($isInstanceOf(Q, "Int"))
217+ then Q
218+ else throw(($getType(Q) + " couldn't be cast to Int"))
215219 }
216- let R = if ((Q == 1))
220+ let S = if ((R == 1))
217221 then true
218222 else e
219- if ((R == R))
223+ if ((S == S))
220224 then {
221- let S = addressFromStringValue(O)
222- let Z = {
223- let P = invoke(S, "calculateAmountOutForSwapAndSendTokens", [toInt(J), N, U, V], [AttachedPayment(F, toInt(J))])
224- if ($isInstanceOf(P, "Int"))
225- then P
226- else throw(($getType(P) + " couldn't be cast to Int"))
225+ let T = addressFromStringValue(P)
226+ let aa = {
227+ let Q = invoke(T, "calculateAmountOutForSwapAndSendTokens", [toInt(K), O, V, W], [AttachedPayment(F, toInt(K))])
228+ if ($isInstanceOf(Q, "Int"))
229+ then Q
230+ else throw(($getType(Q) + " couldn't be cast to Int"))
227231 }
228- $Tuple2([ScriptTransfer(m, toInt(I), F)], Z)
232+ $Tuple2([ScriptTransfer(m, toInt(J), F)], aa)
229233 }
230234 else throw("Strict value is not equal to itself.")
231235 }
232236 else throw("Strict value is not equal to itself.")
233237 }
234238
235239
236240
237241 @Callable(z)
238-func setManager (aa) = {
239- let ab = B(z)
240- if ((ab == ab))
242+func setManager (ab) = {
243+ let ac = B(z)
244+ if ((ac == ac))
241245 then {
242- let ac = fromBase58String(aa)
243- if ((ac == ac))
244- then [StringEntry(i(), aa)]
246+ let ad = fromBase58String(ab)
247+ if ((ad == ad))
248+ then [StringEntry(i(), ab)]
245249 else throw("Strict value is not equal to itself.")
246250 }
247251 else throw("Strict value is not equal to itself.")
248252 }
249253
250254
251255
252256 @Callable(z)
253257 func confirmManager () = {
254- let ad = x()
255- let ae = if (isDefined(ad))
258+ let ae = x()
259+ let af = if (isDefined(ae))
256260 then true
257261 else throw("no pending manager")
258- if ((ae == ae))
262+ if ((af == af))
259263 then {
260- let af = if ((z.callerPublicKey == value(ad)))
264+ let ag = if ((z.callerPublicKey == value(ae)))
261265 then true
262266 else throw("you are not pending manager")
263- if ((af == af))
264- then [StringEntry(h(), toBase58String(value(ad))), DeleteEntry(i())]
267+ if ((ag == ag))
268+ then [StringEntry(h(), toBase58String(value(ae))), DeleteEntry(i())]
265269 else throw("Strict value is not equal to itself.")
266270 }
267271 else throw("Strict value is not equal to itself.")
268272 }
269273
270274
271-@Verifier(ag)
272-func ah () = {
273- let ai = {
275+@Verifier(ah)
276+func ai () = {
277+ let aj = {
274278 let q = v()
275279 if ($isInstanceOf(q, "ByteVector"))
276280 then {
277281 let A = q
278282 A
279283 }
280284 else if ($isInstanceOf(q, "Unit"))
281- then ag.senderPublicKey
285+ then ah.senderPublicKey
282286 else throw("Match error")
283287 }
284- sigVerify(ag.bodyBytes, ag.proofs[0], ai)
288+ sigVerify(ah.bodyBytes, ah.proofs[0], aj)
285289 }
286290

github/deemru/w8io/169f3d6 
139.08 ms