tx · HyT8bbYcakbk62xGhTdeFdUvc3nr9eS29mQW2Rdr8MCb

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2021.11.05 13:02 [1777555] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "HyT8bbYcakbk62xGhTdeFdUvc3nr9eS29mQW2Rdr8MCb", "fee": 1400000, "feeAssetId": null, "timestamp": 1636106591941, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "3AwgeNQ7Qmr5UcLvGiZGdk9csidBfcVMXfenqXwRReL1TT8kT1XsVtBBGvAcUU4AHfPSRkRNJwwcLiUFCoQP8ibu" ], "script": "base64:AAIFAAAAAAAAABYIAhIAEgMKARgSABIDCgEIEgQKAggBAAAAAwAAAAAKZGVwb3NpdEZlZQAAAAAAAAAD6AAAAAANY29udHJvbGxlckZlZQAAAAAAAAAnEAAAAAALcGxhdGZvcm1GZWUAAAAAAAAAJxAAAAAFAAAAAmE4AQAAAARpbml0AAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAxM1BQSDd4N2lxb2JXNXppeWlSQ2ljMTlyUXFLcjZuUFlhSzFfYXNzZXRfYmFsYW5jZQAAAAAAAG3UrQUAAAADbmlsAAAAAWkBAAAACGFkZFBvb2xzAAAAAQAAAAVwb29scwoBAAAAEGdlbmVyYXRlUG9vbEtleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAAOX2Fzc2V0X2JhbGFuY2UAAAAAAAAAAAAFAAAAC2FjY3VtdWxhdGVkBAAAABZwcmV2aW91c1Jld2FyZEVudHJ5TmV3CgAAAAACJGwFAAAABXBvb2xzCgAAAAACJHMJAAGQAAAAAQUAAAACJGwKAAAAAAUkYWNjMAUAAAADbmlsCgEAAAABMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAABBnZW5lcmF0ZVBvb2xLZXlzAAAAAgUAAAACJGEJAAGRAAAAAgUAAAACJGwFAAAAAiRpCgEAAAABMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQAAAAEyAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIJAQAAAAExAAAAAgkBAAAAATEAAAACCQEAAAABMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKAAAAAAAAAAALAAAAAAAAAAAMAAAAAAAAAAANAAAAAAAAAAAOAAAAAAAAAAAPAAAAAAAAAAAQAAAAAAAAAAARAAAAAAAAAAASAAAAAAAAAAATAAAAAAAAAAAUBQAAABZwcmV2aW91c1Jld2FyZEVudHJ5TmV3AAAAAmE4AQAAAARjYWxsAAAAAAQAAAACYTkJAARDAAAABwIAAAAGQXNzZXQxAgAAAA9Bc3NldCBmcm9tIGRBcHAAAAAAAAABhqAAAAAAAAAAAAIGBQAAAAR1bml0AAAAAAAAAAAABAAAAAJiMQkABDgAAAABBQAAAAJhOQkABEwAAAACCQEAAAALQmluYXJ5RW50cnkAAAACAgAAAANiaW4BAAAAAAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgIAAAAEYm9vbAYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAA2ludAAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAANzdHICAAAAAAkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABAgAAAANzdHIJAARMAAAAAgUAAAACYTkFAAAAA25pbAAAAAFpAQAAAAdkZXBvc2l0AAAAAQAAAARwb29sBAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAQAAAAHYXNzZXRJZAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAANcG9vbEFtb3VudEtleQkAASwAAAACBQAAAARwb29sAgAAAA5fYXNzZXRfYmFsYW5jZQQAAAALdXNlckFkZHJlc3MJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABF1c2VyUG9vbEFtb3VudEtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAABXwUAAAALdXNlckFkZHJlc3MCAAAADl9hc3NldF9iYWxhbmNlBAAAABBkQXBwQXNzZXRBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wCAAAADl9zZXJ2aWNlX3Rva2VuBAAAAApwb29sQW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAA1wb29sQW1vdW50S2V5BAAAAAp1c2VyQW1vdW50BAAAAAckbWF0Y2gwCQAEHwAAAAEFAAAAEXVzZXJQb29sQW1vdW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50BAAAAAdub3RoaW5nBQAAAAckbWF0Y2gwAAAAAAAAAAAABAAAAA1uZXdQb29sQW1vdW50CQAAZAAAAAIFAAAACnBvb2xBbW91bnQFAAAABmFtb3VudAQAAAAUdXNlckFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgkAAGUAAAACBQAAAAZhbW91bnQJAQAAAAhmcmFjdGlvbgAAAAQFAAAABmFtb3VudAAAAAAAAAAAAQUAAAAKZGVwb3NpdEZlZQUAAAAGSEFMRlVQCQEAAAAIZnJhY3Rpb24AAAAEBQAAAAZhbW91bnQAAAAAAAAAAAEFAAAADWNvbnRyb2xsZXJGZWUFAAAABkhBTEZVUAQAAAARbmV3VXNlclBvb2xBbW91bnQJAABkAAAAAgUAAAAKdXNlckFtb3VudAUAAAAUdXNlckFtb3VudFdpdGhvdXRGZWUJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADXBvb2xBbW91bnRLZXkFAAAADW5ld1Bvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXVzZXJQb29sQW1vdW50S2V5BQAAABFuZXdVc2VyUG9vbEFtb3VudAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAARwb29sAAAACnVzZXJFYXJuZWQEAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BAAAAAdhc3NldElkCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAA1wb29sQW1vdW50S2V5CQABLAAAAAIFAAAABHBvb2wCAAAADl9hc3NldF9iYWxhbmNlBAAAAAt1c2VyQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEXVzZXJQb29sQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfBQAAAAt1c2VyQWRkcmVzcwIAAAAOX2Fzc2V0X2JhbGFuY2UEAAAAEXVzZXJQb29sRWFybmVkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfBQAAAAt1c2VyQWRkcmVzcwIAAAAHX2Vhcm5lZAQAAAAKcG9vbEFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAANcG9vbEFtb3VudEtleQQAAAAKdXNlckFtb3VudAQAAAAHJG1hdGNoMAkABB8AAAABBQAAABF1c2VyUG9vbEFtb3VudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAAAAAAAAAAAAAQAAAAQdXNlckVhcm5lZEJlZm9yZQQAAAAHJG1hdGNoMAkABB8AAAABBQAAABF1c2VyUG9vbEVhcm5lZEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAAAAAAAAAAAAAQAAAAVbGlxdWlkdXR5QXNzZXRBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wCAAAAEF9saXF1aWRpdHlfdG9rZW4EAAAAFWxpcXVpZGl0eVRva2VuRGVjaW1hbAQAAAAHJG1hdGNoMAkAA+wAAAABCQACWQAAAAEFAAAAFWxpcXVpZHV0eUFzc2V0QWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAABWFzc2V0BQAAAAckbWF0Y2gwCAUAAAAFYXNzZXQAAAAIZGVjaW1hbHMJAAACAAAAAQIAAAAQQ2FuJ3QgZmluZCBhc3NldAQAAAAQZEFwcEFzc2V0QWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sAgAAAA5fc2VydmljZV90b2tlbgQAAAAPdXNlckVhcm5lZFRvdGFsCQAAZAAAAAIFAAAACnVzZXJFYXJuZWQFAAAAEHVzZXJFYXJuZWRCZWZvcmUEAAAAEGFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgkAAGUAAAACBQAAAAZhbW91bnQJAQAAAAhmcmFjdGlvbgAAAAQFAAAABmFtb3VudAAAAAAAAAAAAQUAAAALcGxhdGZvcm1GZWUFAAAABkhBTEZVUAkBAAAACGZyYWN0aW9uAAAABAUAAAAGYW1vdW50AAAAAAAAAAABBQAAAA1jb250cm9sbGVyRmVlBQAAAAZIQUxGVVAEAAAADW5ld1Bvb2xBbW91bnQJAABlAAAAAgUAAAAKcG9vbEFtb3VudAUAAAAQYW1vdW50V2l0aG91dEZlZQMJAABnAAAAAgUAAAAKdXNlckFtb3VudAUAAAAGYW1vdW50BAAAABFuZXdVc2VyUG9vbEFtb3VudAkAAGUAAAACBQAAAAp1c2VyQW1vdW50BQAAABBhbW91bnRXaXRob3V0RmVlCQAETAAAAAIJAQAAAARCdXJuAAAAAgkAAlkAAAABBQAAABBkQXBwQXNzZXRBZGRyZXNzBQAAABBhbW91bnRXaXRob3V0RmVlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAQYW1vdW50V2l0aG91dEZlZQkAAlkAAAABBQAAABVsaXF1aWR1dHlBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADXBvb2xBbW91bnRLZXkFAAAADW5ld1Bvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXVzZXJQb29sQW1vdW50S2V5BQAAABFuZXdVc2VyUG9vbEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARdXNlclBvb2xFYXJuZWRLZXkFAAAAD3VzZXJFYXJuZWRUb3RhbAUAAAADbmlsCQAAAgAAAAECAAAAJllvdSBoYXZlIG5vdCBzdWNoIGJhbGFuY2UgZm9yIHdpdGhkcmF3AAAAAQAAAAJiNgEAAAACYjcAAAAACQAB9AAAAAMIBQAAAAJiNgAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAmI2AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAmI2AAAAD3NlbmRlclB1YmxpY0tlecRbz18=", "height": 1777555, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 56F1yA672r85ossDcqUNLeS7EVeWJHAWCjWfH4VNHEU4 Next: EnmK2aWSGdNUUoLzAxYg8nADRHkdkxiQHF4Ssot198Vm Diff:
OldNewDifferences
66 let controllerFee = 10000
77
88 let platformFee = 10000
9-
10-func map (accum,next) = IntegerEntry((next + "_asset_balance"), 0) :: accum
11-
12-
13-func mapA (accum,next) = (next - 1) :: accum
14-
15-
16-func sum (accum,next) = (accum + next)
17-
189
1910 @Callable(a8)
2011 func init () = [IntegerEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_asset_balance", 7197869)]
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let depositFee = 1000
55
66 let controllerFee = 10000
77
88 let platformFee = 10000
9-
10-func map (accum,next) = IntegerEntry((next + "_asset_balance"), 0) :: accum
11-
12-
13-func mapA (accum,next) = (next - 1) :: accum
14-
15-
16-func sum (accum,next) = (accum + next)
17-
189
1910 @Callable(a8)
2011 func init () = [IntegerEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_asset_balance", 7197869)]
2112
2213
2314
2415 @Callable(i)
2516 func addPools (pools) = {
2617 func generatePoolKeys (accumulated,pool) = IntegerEntry((pool + "_asset_balance"), 0) :: accumulated
2718
2819 let previousRewardEntryNew = {
2920 let $l = pools
3021 let $s = size($l)
3122 let $acc0 = nil
3223 func 1 ($a,$i) = if (($i >= $s))
3324 then $a
3425 else generatePoolKeys($a, $l[$i])
3526
3627 func 2 ($a,$i) = if (($i >= $s))
3728 then $a
3829 else throw("List size exceeds 20")
3930
4031 2(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1(1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
4132 }
4233 previousRewardEntryNew
4334 }
4435
4536
4637
4738 @Callable(a8)
4839 func call () = {
4940 let a9 = Issue("Asset1", "Asset from dApp", 100000, 2, true, unit, 0)
5041 let b1 = calculateAssetId(a9)
5142 [BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), a9]
5243 }
5344
5445
5546
5647 @Callable(i)
5748 func deposit (pool) = {
5849 let amount = i.payments[0].amount
5950 let assetId = i.payments[0].assetId
6051 let poolAmountKey = (pool + "_asset_balance")
6152 let userAddress = toString(i.caller)
6253 let userPoolAmountKey = (((pool + "_") + userAddress) + "_asset_balance")
6354 let dAppAssetAddress = getStringValue(this, (pool + "_service_token"))
6455 let poolAmount = getIntegerValue(this, poolAmountKey)
6556 let userAmount = match getInteger(userPoolAmountKey) {
6657 case int: Int =>
6758 int
6859 case nothing =>
6960 0
7061 }
7162 let newPoolAmount = (poolAmount + amount)
7263 let userAmountWithoutFee = ((amount - fraction(amount, 1, depositFee, HALFUP)) - fraction(amount, 1, controllerFee, HALFUP))
7364 let newUserPoolAmount = (userAmount + userAmountWithoutFee)
7465 [Reissue(fromBase58String(dAppAssetAddress), userAmountWithoutFee, true), ScriptTransfer(i.caller, userAmountWithoutFee, fromBase58String(dAppAssetAddress)), IntegerEntry(poolAmountKey, newPoolAmount), IntegerEntry(userPoolAmountKey, newUserPoolAmount)]
7566 }
7667
7768
7869
7970 @Callable(i)
8071 func withdraw (pool,userEarned) = {
8172 let amount = i.payments[0].amount
8273 let assetId = i.payments[0].assetId
8374 let poolAmountKey = (pool + "_asset_balance")
8475 let userAddress = toString(i.caller)
8576 let userPoolAmountKey = (((pool + "_") + userAddress) + "_asset_balance")
8677 let userPoolEarnedKey = (((pool + "_") + userAddress) + "_earned")
8778 let poolAmount = getIntegerValue(this, poolAmountKey)
8879 let userAmount = match getInteger(userPoolAmountKey) {
8980 case int: Int =>
9081 int
9182 case nothing =>
9283 0
9384 }
9485 let userEarnedBefore = match getInteger(userPoolEarnedKey) {
9586 case int: Int =>
9687 int
9788 case nothing =>
9889 0
9990 }
10091 let liquidutyAssetAddress = getStringValue(this, (pool + "_liquidity_token"))
10192 let liquidityTokenDecimal = match assetInfo(fromBase58String(liquidutyAssetAddress)) {
10293 case asset: Asset =>
10394 asset.decimals
10495 case _ =>
10596 throw("Can't find asset")
10697 }
10798 let dAppAssetAddress = getStringValue(this, (pool + "_service_token"))
10899 let userEarnedTotal = (userEarned + userEarnedBefore)
109100 let amountWithoutFee = ((amount - fraction(amount, 1, platformFee, HALFUP)) - fraction(amount, 1, controllerFee, HALFUP))
110101 let newPoolAmount = (poolAmount - amountWithoutFee)
111102 if ((userAmount >= amount))
112103 then {
113104 let newUserPoolAmount = (userAmount - amountWithoutFee)
114105 [Burn(fromBase58String(dAppAssetAddress), amountWithoutFee), ScriptTransfer(i.caller, amountWithoutFee, fromBase58String(liquidutyAssetAddress)), IntegerEntry(poolAmountKey, newPoolAmount), IntegerEntry(userPoolAmountKey, newUserPoolAmount), IntegerEntry(userPoolEarnedKey, userEarnedTotal)]
115106 }
116107 else throw("You have not such balance for withdraw")
117108 }
118109
119110
120111 @Verifier(b6)
121112 func b7 () = sigVerify(b6.bodyBytes, b6.proofs[0], b6.senderPublicKey)
122113

github/deemru/w8io/169f3d6 
25.61 ms