tx · 3T2LbSdMzfMKBjUfxnNod9JeCwsCS5VG2WknH2jnbs7v

3N2j6yXv5aLx1DTVGpwUmJHKZb5XwMfWZhk:  -1.00500000 Waves

2022.07.14 10:50 [2139114] smart account 3N2j6yXv5aLx1DTVGpwUmJHKZb5XwMfWZhk > SELF 0.00000000 Waves

{ "type": 13, "id": "3T2LbSdMzfMKBjUfxnNod9JeCwsCS5VG2WknH2jnbs7v", "fee": 100500000, "feeAssetId": null, "timestamp": 1657785069019, "version": 2, "chainId": 84, "sender": "3N2j6yXv5aLx1DTVGpwUmJHKZb5XwMfWZhk", "senderPublicKey": "8ZzMCsQ15BKiHk944146A5WQ8eSFd8vaff4xaktCKSBK", "proofs": [ "4gQ7cCbEA98SStxgQUt7o7RHhFT9PXaSqqAgYQLe7HMBu2g7ai8GZU5G2Yj7PZD6EjyeKeS1skwvSUMTm2tW2fTp" ], "script": "base64:BgIRCAISAwoBCBIAEgASBAoCCAgRAAlzZXBhcmF0b3ICAV8BDWdldFBhaXJMZW5ndGgACQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCnBhaXJMZW5ndGgAAAENc2V0UGFpckxlbmdodAEJbmV3TGVuZ3RoCQEMSW50ZWdlckVudHJ5AgIKcGFpckxlbmd0aAUJbmV3TGVuZ3RoAQpnZXRQYWlyS2V5AgZ0b2tlbjAGdG9rZW4xBAh0b2tlbjBCVgkAsQkBCQDZBAEFBnRva2VuMAQIdG9rZW4xQlYJALEJAQkA2QQBBQZ0b2tlbjEDCQBmAgUIdG9rZW4xQlYFCHRva2VuMEJWCQC5CQIJAMwIAgUGdG9rZW4wCQDMCAIFBnRva2VuMQUDbmlsBQlzZXBhcmF0b3IJALkJAgkAzAgCBQZ0b2tlbjEJAMwIAgUGdG9rZW4wBQNuaWwFCXNlcGFyYXRvcgEOZ2V0UGFpclRva2VuSWQCBnRva2VuMAZ0b2tlbjEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQpnZXRQYWlyS2V5AgUGdG9rZW4wBQZ0b2tlbjEBDnNldFBhaXJUb2tlbklkAwZ0b2tlbjAGdG9rZW4xB2lzc3VlSWQJAQtTdHJpbmdFbnRyeQIJAQpnZXRQYWlyS2V5AgUGdG9rZW4wBQZ0b2tlbjEFB2lzc3VlSWQBDmpvaW5QYWlyU3RydWN0BAZ0b2tlbjAGdG9rZW4xCHJlc2VydmUwCHJlc2VydmUxCQC5CQIJAMwIAgUGdG9rZW4wCQDMCAIFBnRva2VuMQkAzAgCCQCkAwEFCHJlc2VydmUwCQDMCAIJAKQDAQUIcmVzZXJ2ZTEFA25pbAUJc2VwYXJhdG9yAQ5nZXRQYWlyRGV0YWlscwEJbHBUb2tlbklkBAdkZXRhaWxzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUJbHBUb2tlbklkAhVhc3NldElkMF9hc3NldElkMV8wXzAFCXNlcGFyYXRvcgkAlgoECQCRAwIFB2RldGFpbHMAAAkAkQMCBQdkZXRhaWxzAAEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdkZXRhaWxzAAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdkZXRhaWxzAAMBDnNldFBhaXJEZXRhaWxzBQlscFRva2VuSWQGdG9rZW4wBnRva2VuMQhyZXNlcnZlMAhyZXNlcnZlMQkBC1N0cmluZ0VudHJ5AgUJbHBUb2tlbklkCQEOam9pblBhaXJTdHJ1Y3QEBQZ0b2tlbjAFBnRva2VuMQUIcmVzZXJ2ZTAFCHJlc2VydmUxARJnZXRQYWlyVG90YWxTdXBwbHkBCWxwVG9rZW5JZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgILdG90YWxTdXBwbHkFCXNlcGFyYXRvcgUJbHBUb2tlbklkAAABEnNldFBhaXJUb3RhbFN1cHBseQIJbHBUb2tlbklkDm5ld1RvdGFsU3VwcGx5CQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICC3RvdGFsU3VwcGx5BQlzZXBhcmF0b3IFCWxwVG9rZW5JZAUObmV3VG90YWxTdXBwbHkBCWlzTmV3UGFpcgIGdG9rZW4wBnRva2VuMQkBASEBCQEJaXNEZWZpbmVkAQkAoggBCQEKZ2V0UGFpcktleQIFBnRva2VuMAUGdG9rZW4xAQ1pc1Rva2VuRXhpc3RzAQd0b2tlbklkBgAEbWF4eACAwtcvAAh6ZXJvQWRkcgkBBXZhbHVlAQkApggBAiMzTTRxd0RvbVJhYkpLTFp4dVhod2ZxTEFwUWtVNTkybld4RgARTUlOSU1VTV9MSVFVSURJVFkAoI0GAQ1jYWxjQW1vdW50T3V0AwhhbW91bnRJbglyZXNlcnZlSW4KcmVzZXJ2ZU91dAQPYW1vdW50SW5XaXRoRmVlCQBoAgUIYW1vdW50SW4A5QcECW51bWVyYXRvcgkAaAIFD2Ftb3VudEluV2l0aEZlZQUKcmVzZXJ2ZU91dAQLZGVub21pbmF0b3IJAGQCCQBoAgUJcmVzZXJ2ZUluAOgHBQ9hbW91bnRJbldpdGhGZWUJAGkCBQludW1lcmF0b3IFC2Rlbm9taW5hdG9yBAFpAQRzd2FwAQh0b2tlbk91dAQIYW1vdW50SW4JAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAd0b2tlbkluCQDYBAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQHbHBUb2tlbgkBDmdldFBhaXJUb2tlbklkAgUHdG9rZW5JbgUIdG9rZW5PdXQECyR0MDI1MjkyNjExCQEOZ2V0UGFpckRldGFpbHMBBQdscFRva2VuBApwYWlyVG9rZW4wCAULJHQwMjUyOTI2MTECXzEECnBhaXJUb2tlbjEIBQskdDAyNTI5MjYxMQJfMgQMcGFpclJlc2VydmUwCAULJHQwMjUyOTI2MTECXzMEDHBhaXJSZXNlcnZlMQgFCyR0MDI1MjkyNjExAl80BAlhbW91bnRPdXQJAQ1jYWxjQW1vdW50T3V0AwUIYW1vdW50SW4FDHBhaXJSZXNlcnZlMAUMcGFpclJlc2VydmUxCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJYW1vdW50T3V0CQDZBAEFCnBhaXJUb2tlbjEJAMwIAgkBDnNldFBhaXJEZXRhaWxzBQUHbHBUb2tlbgUHdG9rZW5JbgUIdG9rZW5PdXQJAGQCBQxwYWlyUmVzZXJ2ZTAFCGFtb3VudEluCQBlAgUMcGFpclJlc2VydmUxBQlhbW91bnRPdXQFA25pbAFpAQRtaW50AAQGdG9rZW4wCQDYBAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQGdG9rZW4xCQDYBAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAEHYXNzZXRJZAQHbHBUb2tlbgkBDmdldFBhaXJUb2tlbklkAgUGdG9rZW4wBQZ0b2tlbjEEB2Ftb3VudDAJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAdhbW91bnQxCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwABBmFtb3VudAQLJHQwMzE1OTMyNDEJAQ5nZXRQYWlyRGV0YWlscwEFB2xwVG9rZW4ECnBhaXJUb2tlbjAIBQskdDAzMTU5MzI0MQJfMQQKcGFpclRva2VuMQgFCyR0MDMxNTkzMjQxAl8yBAxwYWlyUmVzZXJ2ZTAIBQskdDAzMTU5MzI0MQJfMwQMcGFpclJlc2VydmUxCAULJHQwMzE1OTMyNDECXzQEC3RvdGFsU3VwcGx5CQESZ2V0UGFpclRvdGFsU3VwcGx5AQUHbHBUb2tlbgMJAAACBQt0b3RhbFN1cHBseQAABAlsaXF1aWRpdHkJAGUCCQEEc3FydAQJAGgCBQdhbW91bnQwBQdhbW91bnQxAAAAAAUERE9XTgURTUlOSU1VTV9MSVFVSURJVFkJAMwIAgkBB1JlaXNzdWUDCQDZBAEFB2xwVG9rZW4JAGQCBQlsaXF1aWRpdHkFEU1JTklNVU1fTElRVUlESVRZBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQh6ZXJvQWRkcgURTUlOSU1VTV9MSVFVSURJVFkJANkEAQUHbHBUb2tlbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFCWxpcXVpZGl0eQkA2QQBBQdscFRva2VuCQDMCAIJARJzZXRQYWlyVG90YWxTdXBwbHkCBQdscFRva2VuCQBkAgUJbGlxdWlkaXR5BRFNSU5JTVVNX0xJUVVJRElUWQkAzAgCCQEOc2V0UGFpckRldGFpbHMFBQdscFRva2VuBQZ0b2tlbjAFBnRva2VuMQkAZAIFDHBhaXJSZXNlcnZlMAUHYW1vdW50MAkAZAIFDHBhaXJSZXNlcnZlMQUHYW1vdW50MQUDbmlsBAlsaXF1aWRpdHkJAJcDAQkAzAgCCQBpAgkAaAIFB2Ftb3VudDAFC3RvdGFsU3VwcGx5BQxwYWlyUmVzZXJ2ZTAJAMwIAgkAaQIJAGgCBQdhbW91bnQxBQt0b3RhbFN1cHBseQUMcGFpclJlc2VydmUxBQNuaWwJAMwIAgkBB1JlaXNzdWUDCQDZBAEFB2xwVG9rZW4FCWxpcXVpZGl0eQYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQlsaXF1aWRpdHkJANkEAQUHbHBUb2tlbgkAzAgCCQESc2V0UGFpclRvdGFsU3VwcGx5AgUHbHBUb2tlbgkAZAIFC3RvdGFsU3VwcGx5BQlsaXF1aWRpdHkJAMwIAgkBDnNldFBhaXJEZXRhaWxzBQUHbHBUb2tlbgUGdG9rZW4wBQZ0b2tlbjEJAGQCBQxwYWlyUmVzZXJ2ZTAFB2Ftb3VudDAJAGQCBQxwYWlyUmVzZXJ2ZTEFB2Ftb3VudDEFA25pbAFpAQRidXJuAAQIYW1vdW50bHAJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAlhc3NldElkTHAJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAQLJHQwNDM0ODQ0NDgJAQ5nZXRQYWlyRGV0YWlscwEJANgEAQUJYXNzZXRJZExwBApwYWlyVG9rZW4wCAULJHQwNDM0ODQ0NDgCXzEECnBhaXJUb2tlbjEIBQskdDA0MzQ4NDQ0OAJfMgQMcGFpclJlc2VydmUwCAULJHQwNDM0ODQ0NDgCXzMEDHBhaXJSZXNlcnZlMQgFCyR0MDQzNDg0NDQ4Al80BAdscFRva2VuCQEOZ2V0UGFpclRva2VuSWQCBQpwYWlyVG9rZW4wBQpwYWlyVG9rZW4xBAt0b3RhbFN1cHBseQkBEmdldFBhaXJUb3RhbFN1cHBseQEFB2xwVG9rZW4EBXNoYXJlCQBpAgkAaAIFCGFtb3VudGxwBQRtYXh4BQt0b3RhbFN1cHBseQQHYW1vdW50MAkAaQIJAGgCBQVzaGFyZQUMcGFpclJlc2VydmUwBQRtYXh4BAdhbW91bnQxCQBpAgkAaAIFBXNoYXJlBQxwYWlyUmVzZXJ2ZTEFBG1heHgJAMwIAgkBBEJ1cm4CCQDZBAEFB2xwVG9rZW4FCGFtb3VudGxwCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHYW1vdW50MAkA2QQBBQpwYWlyVG9rZW4wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHYW1vdW50MQkA2QQBBQpwYWlyVG9rZW4xCQDMCAIJARJzZXRQYWlyVG90YWxTdXBwbHkCBQdscFRva2VuCQBlAgULdG90YWxTdXBwbHkFCGFtb3VudGxwCQDMCAIJAQ5zZXRQYWlyRGV0YWlscwUFB2xwVG9rZW4FCnBhaXJUb2tlbjAFCnBhaXJUb2tlbjEJAGUCBQxwYWlyUmVzZXJ2ZTAFB2Ftb3VudDAJAGUCBQxwYWlyUmVzZXJ2ZTEFB2Ftb3VudDEFA25pbAFpARBhZGRMaXF1aWRpdHlQb29sAgZ0b2tlbjAGdG9rZW4xAwkBCWlzTmV3UGFpcgIFBnRva2VuMAUGdG9rZW4xAwkBAiE9AgUGdG9rZW4wBQZ0b2tlbjEDAwkBDWlzVG9rZW5FeGlzdHMBBQZ0b2tlbjAJAQ1pc1Rva2VuRXhpc3RzAQUGdG9rZW4xBwQIbmV3VG9rZW4JAMIIBQkA2AQBCQDJAQIIBQFpDXRyYW5zYWN0aW9uSWQACgIAAAAAAAYEB2lzc3VlSWQJANgEAQkAuAgBBQhuZXdUb2tlbgQQY3VycmVudFBhaXJJbmRleAkBDWdldFBhaXJMZW5ndGgACQDMCAIFCG5ld1Rva2VuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKQDAQUQY3VycmVudFBhaXJJbmRleAUHaXNzdWVJZAkAzAgCCQENc2V0UGFpckxlbmdodAEJAGQCBRBjdXJyZW50UGFpckluZGV4AAEJAMwIAgkBDnNldFBhaXJUb2tlbklkAwUGdG9rZW4wBQZ0b2tlbjEFB2lzc3VlSWQJAMwIAgkBDnNldFBhaXJEZXRhaWxzBQUHaXNzdWVJZAUGdG9rZW4wBQZ0b2tlbjEAAAAABQNuaWwJAAIBAgxXcm9uZyB0b2tlbnMJAAIBAgxFcXVhbCB0b2tlbnMJAAIBAhNQYWlyIGFscmVhZHkgZXhpc3RzABejtX0=", "height": 2139114, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6SXoeWqQf8bx81nzHafoynzZ9VGPorntBDAZ5HHNqUSq Next: none Diff:
OldNewDifferences
4545 func isNewPair (token0,token1) = !(isDefined(getString(getPairKey(token0, token1))))
4646
4747
48-func isTokenExists (tokenId) = match assetInfo(fromBase58String(tokenId)) {
49- case a: Asset =>
50- true
51- case _ =>
52- throw("Bad situation")
53-}
48+func isTokenExists (tokenId) = true
5449
5550
5651 let maxx = 100000000
7267 let amountIn = value(i.payments[0].amount)
7368 let tokenIn = toBase58String(value(i.payments[0].assetId))
7469 let lpToken = getPairTokenId(tokenIn, tokenOut)
75- let $t026392721 = getPairDetails(lpToken)
76- let pairToken0 = $t026392721._1
77- let pairToken1 = $t026392721._2
78- let pairReserve0 = $t026392721._3
79- let pairReserve1 = $t026392721._4
70+ let $t025292611 = getPairDetails(lpToken)
71+ let pairToken0 = $t025292611._1
72+ let pairToken1 = $t025292611._2
73+ let pairReserve0 = $t025292611._3
74+ let pairReserve1 = $t025292611._4
8075 let amountOut = calcAmountOut(amountIn, pairReserve0, pairReserve1)
8176 [ScriptTransfer(i.caller, amountOut, fromBase58String(pairToken1)), setPairDetails(lpToken, tokenIn, tokenOut, (pairReserve0 + amountIn), (pairReserve1 - amountOut))]
8277 }
9085 let lpToken = getPairTokenId(token0, token1)
9186 let amount0 = value(i.payments[0].amount)
9287 let amount1 = value(i.payments[1].amount)
93- let $t032693351 = getPairDetails(lpToken)
94- let pairToken0 = $t032693351._1
95- let pairToken1 = $t032693351._2
96- let pairReserve0 = $t032693351._3
97- let pairReserve1 = $t032693351._4
88+ let $t031593241 = getPairDetails(lpToken)
89+ let pairToken0 = $t031593241._1
90+ let pairToken1 = $t031593241._2
91+ let pairReserve0 = $t031593241._3
92+ let pairReserve1 = $t031593241._4
9893 let totalSupply = getPairTotalSupply(lpToken)
9994 if ((totalSupply == 0))
10095 then {
113108 func burn () = {
114109 let amountlp = value(i.payments[0].amount)
115110 let assetIdLp = value(i.payments[0].assetId)
116- let $t044584558 = getPairDetails(toBase58String(assetIdLp))
117- let pairToken0 = $t044584558._1
118- let pairToken1 = $t044584558._2
119- let pairReserve0 = $t044584558._3
120- let pairReserve1 = $t044584558._4
111+ let $t043484448 = getPairDetails(toBase58String(assetIdLp))
112+ let pairToken0 = $t043484448._1
113+ let pairToken1 = $t043484448._2
114+ let pairReserve0 = $t043484448._3
115+ let pairReserve1 = $t043484448._4
121116 let lpToken = getPairTokenId(pairToken0, pairToken1)
122117 let totalSupply = getPairTotalSupply(lpToken)
123118 let share = ((amountlp * maxx) / totalSupply)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 func getPairLength () = valueOrElse(getInteger(this, "pairLength"), 0)
77
88
99 func setPairLenght (newLength) = IntegerEntry("pairLength", newLength)
1010
1111
1212 func getPairKey (token0,token1) = {
1313 let token0BV = toInt(fromBase58String(token0))
1414 let token1BV = toInt(fromBase58String(token1))
1515 if ((token1BV > token0BV))
1616 then makeString([token0, token1], separator)
1717 else makeString([token1, token0], separator)
1818 }
1919
2020
2121 func getPairTokenId (token0,token1) = getStringValue(this, getPairKey(token0, token1))
2222
2323
2424 func setPairTokenId (token0,token1,issueId) = StringEntry(getPairKey(token0, token1), issueId)
2525
2626
2727 func joinPairStruct (token0,token1,reserve0,reserve1) = makeString([token0, token1, toString(reserve0), toString(reserve1)], separator)
2828
2929
3030 func getPairDetails (lpTokenId) = {
3131 let details = split(valueOrElse(getString(this, lpTokenId), "assetId0_assetId1_0_0"), separator)
3232 $Tuple4(details[0], details[1], parseIntValue(details[2]), parseIntValue(details[3]))
3333 }
3434
3535
3636 func setPairDetails (lpTokenId,token0,token1,reserve0,reserve1) = StringEntry(lpTokenId, joinPairStruct(token0, token1, reserve0, reserve1))
3737
3838
3939 func getPairTotalSupply (lpTokenId) = valueOrElse(getInteger(this, (("totalSupply" + separator) + lpTokenId)), 0)
4040
4141
4242 func setPairTotalSupply (lpTokenId,newTotalSupply) = IntegerEntry((("totalSupply" + separator) + lpTokenId), newTotalSupply)
4343
4444
4545 func isNewPair (token0,token1) = !(isDefined(getString(getPairKey(token0, token1))))
4646
4747
48-func isTokenExists (tokenId) = match assetInfo(fromBase58String(tokenId)) {
49- case a: Asset =>
50- true
51- case _ =>
52- throw("Bad situation")
53-}
48+func isTokenExists (tokenId) = true
5449
5550
5651 let maxx = 100000000
5752
5853 let zeroAddr = value(addressFromString("3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF"))
5954
6055 let MINIMUM_LIQUIDITY = 100000
6156
6257 func calcAmountOut (amountIn,reserveIn,reserveOut) = {
6358 let amountInWithFee = (amountIn * 997)
6459 let numerator = (amountInWithFee * reserveOut)
6560 let denominator = ((reserveIn * 1000) + amountInWithFee)
6661 (numerator / denominator)
6762 }
6863
6964
7065 @Callable(i)
7166 func swap (tokenOut) = {
7267 let amountIn = value(i.payments[0].amount)
7368 let tokenIn = toBase58String(value(i.payments[0].assetId))
7469 let lpToken = getPairTokenId(tokenIn, tokenOut)
75- let $t026392721 = getPairDetails(lpToken)
76- let pairToken0 = $t026392721._1
77- let pairToken1 = $t026392721._2
78- let pairReserve0 = $t026392721._3
79- let pairReserve1 = $t026392721._4
70+ let $t025292611 = getPairDetails(lpToken)
71+ let pairToken0 = $t025292611._1
72+ let pairToken1 = $t025292611._2
73+ let pairReserve0 = $t025292611._3
74+ let pairReserve1 = $t025292611._4
8075 let amountOut = calcAmountOut(amountIn, pairReserve0, pairReserve1)
8176 [ScriptTransfer(i.caller, amountOut, fromBase58String(pairToken1)), setPairDetails(lpToken, tokenIn, tokenOut, (pairReserve0 + amountIn), (pairReserve1 - amountOut))]
8277 }
8378
8479
8580
8681 @Callable(i)
8782 func mint () = {
8883 let token0 = toBase58String(value(i.payments[0].assetId))
8984 let token1 = toBase58String(value(i.payments[1].assetId))
9085 let lpToken = getPairTokenId(token0, token1)
9186 let amount0 = value(i.payments[0].amount)
9287 let amount1 = value(i.payments[1].amount)
93- let $t032693351 = getPairDetails(lpToken)
94- let pairToken0 = $t032693351._1
95- let pairToken1 = $t032693351._2
96- let pairReserve0 = $t032693351._3
97- let pairReserve1 = $t032693351._4
88+ let $t031593241 = getPairDetails(lpToken)
89+ let pairToken0 = $t031593241._1
90+ let pairToken1 = $t031593241._2
91+ let pairReserve0 = $t031593241._3
92+ let pairReserve1 = $t031593241._4
9893 let totalSupply = getPairTotalSupply(lpToken)
9994 if ((totalSupply == 0))
10095 then {
10196 let liquidity = (sqrt((amount0 * amount1), 0, 0, DOWN) - MINIMUM_LIQUIDITY)
10297 [Reissue(fromBase58String(lpToken), (liquidity + MINIMUM_LIQUIDITY), true), ScriptTransfer(zeroAddr, MINIMUM_LIQUIDITY, fromBase58String(lpToken)), ScriptTransfer(i.caller, liquidity, fromBase58String(lpToken)), setPairTotalSupply(lpToken, (liquidity + MINIMUM_LIQUIDITY)), setPairDetails(lpToken, token0, token1, (pairReserve0 + amount0), (pairReserve1 + amount1))]
10398 }
10499 else {
105100 let liquidity = min([((amount0 * totalSupply) / pairReserve0), ((amount1 * totalSupply) / pairReserve1)])
106101 [Reissue(fromBase58String(lpToken), liquidity, true), ScriptTransfer(i.caller, liquidity, fromBase58String(lpToken)), setPairTotalSupply(lpToken, (totalSupply + liquidity)), setPairDetails(lpToken, token0, token1, (pairReserve0 + amount0), (pairReserve1 + amount1))]
107102 }
108103 }
109104
110105
111106
112107 @Callable(i)
113108 func burn () = {
114109 let amountlp = value(i.payments[0].amount)
115110 let assetIdLp = value(i.payments[0].assetId)
116- let $t044584558 = getPairDetails(toBase58String(assetIdLp))
117- let pairToken0 = $t044584558._1
118- let pairToken1 = $t044584558._2
119- let pairReserve0 = $t044584558._3
120- let pairReserve1 = $t044584558._4
111+ let $t043484448 = getPairDetails(toBase58String(assetIdLp))
112+ let pairToken0 = $t043484448._1
113+ let pairToken1 = $t043484448._2
114+ let pairReserve0 = $t043484448._3
115+ let pairReserve1 = $t043484448._4
121116 let lpToken = getPairTokenId(pairToken0, pairToken1)
122117 let totalSupply = getPairTotalSupply(lpToken)
123118 let share = ((amountlp * maxx) / totalSupply)
124119 let amount0 = ((share * pairReserve0) / maxx)
125120 let amount1 = ((share * pairReserve1) / maxx)
126121 [Burn(fromBase58String(lpToken), amountlp), ScriptTransfer(i.caller, amount0, fromBase58String(pairToken0)), ScriptTransfer(i.caller, amount1, fromBase58String(pairToken1)), setPairTotalSupply(lpToken, (totalSupply - amountlp)), setPairDetails(lpToken, pairToken0, pairToken1, (pairReserve0 - amount0), (pairReserve1 - amount1))]
127122 }
128123
129124
130125
131126 @Callable(i)
132127 func addLiquidityPool (token0,token1) = if (isNewPair(token0, token1))
133128 then if ((token0 != token1))
134129 then if (if (isTokenExists(token0))
135130 then isTokenExists(token1)
136131 else false)
137132 then {
138133 let newToken = Issue(toBase58String(take(i.transactionId, 10)), "", 0, 0, true)
139134 let issueId = toBase58String(calculateAssetId(newToken))
140135 let currentPairIndex = getPairLength()
141136 [newToken, StringEntry(toString(currentPairIndex), issueId), setPairLenght((currentPairIndex + 1)), setPairTokenId(token0, token1, issueId), setPairDetails(issueId, token0, token1, 0, 0)]
142137 }
143138 else throw("Wrong tokens")
144139 else throw("Equal tokens")
145140 else throw("Pair already exists")
146141
147142

github/deemru/w8io/c3f4982 
36.82 ms