tx · GKKKgSDy4i6Z4iNvJXTQP1FMYA3JR5fpQRavgAiZW6YS

3P8ro9dBawKxR2rQPtSX4hVfc1yrUjjCz8X:  -0.01000000 Waves

2024.03.27 09:32 [4102022] smart account 3P8ro9dBawKxR2rQPtSX4hVfc1yrUjjCz8X > SELF 0.00000000 Waves

{ "type": 13, "id": "GKKKgSDy4i6Z4iNvJXTQP1FMYA3JR5fpQRavgAiZW6YS", "fee": 1000000, "feeAssetId": null, "timestamp": 1711521174405, "version": 2, "chainId": 87, "sender": "3P8ro9dBawKxR2rQPtSX4hVfc1yrUjjCz8X", "senderPublicKey": "EVAMa5pPNoDnd1p8GoMUWb4A6gjzDXg2tLK2Tu8mie3R", "proofs": [ "4t78RUaXM1iKxTrKEGktFEBPdumMnu7f6vdUPGYaGUux5bn5ko2wJTKv2ShkA5hhy9fDgwBQso6cyq6LX9GaaoVb" ], "script": "base64:BgISCAISAwoBCBIDCgEIEgQKAggIFgAQdXNlclN0b3JlQWRkcmVzcwkBB0FkZHJlc3MBARoBV2JwScgGQxUjtOvQa1WtNyBCkVT7fZ2DEQAOdXNlckJhbkFkZHJlc3MJAQdBZGRyZXNzAQEaAVeHOYaIcxLUHVrZcLvPfTZ3nSoJlZSzNNMAEnVzZXJSZXdhcmRzQWRkcmVzcwkBB0FkZHJlc3MBARoBV2o4yTAlb0aZIFVpYfXCCi2qYWdAQxdwnAAEZnVkdAEgQHsMDzhOtNXIuUCwZgK73eR+3cH2sC4MYy5Hn0fVndwABXNjYWxlAIDC1y8AAncxCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHdlaWdodF8xAB4AAncyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHdlaWdodF8yABQAAnczCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHdlaWdodF8zADIBDWdldExpa2VzQ291bnQBCHRhcmdldElkCQELdmFsdWVPckVsc2UCCQCaCAIFEHVzZXJTdG9yZUFkZHJlc3MJAKwCAgIJbGlrZXNfb2ZfBQh0YXJnZXRJZAAAARBnZXREaXNsaWtlc0NvdW50AQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRB1c2VyU3RvcmVBZGRyZXNzCQCsAgICDGRpc2xpa2VzX29mXwUIdGFyZ2V0SWQAAAEYZ2V0QmFuRHVyYXRpb25MaWtlQXV0aG9yAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ51c2VyQmFuQWRkcmVzcwkArAICBQh0YXJnZXRJZAITX2FzX2F1dGhvcl9kdXJhdGlvbgAAARhnZXRCYW5EdXJhdGlvbkxpa2VWaWN0aW0BCHRhcmdldElkCQELdmFsdWVPckVsc2UCCQCaCAIFDnVzZXJCYW5BZGRyZXNzCQCsAgIFCHRhcmdldElkAhNfYXNfdmljdGltX2R1cmF0aW9uAAABDmdldEFkZHJlc3NCeUlkAQh0YXJnZXRJZAkAnQgCBRB1c2VyU3RvcmVBZGRyZXNzCQCsAgICC2FkZHJlc3Nfb2ZfBQh0YXJnZXRJZAEOZ2V0RnVkdEJhbGFuY2UBCHRhcmdldElkBAphZGRyZXNzU3RyCQEOZ2V0QWRkcmVzc0J5SWQBBQh0YXJnZXRJZAMJAQlpc0RlZmluZWQBBQphZGRyZXNzU3RyCQDwBwIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFCmFkZHJlc3NTdHIFBGZ1ZHQAAAESZ2V0QXZhaWxhYmxlUmV3YXJkAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJ1c2VyUmV3YXJkc0FkZHJlc3MJAKwCAgUIdGFyZ2V0SWQCCl9hdmFpbGFibGUAAAETZ2V0U2VudEZ1ZHRGb3JMaWtlcwEIdGFyZ2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdXNlclJld2FyZHNBZGRyZXNzCQCsAgICFWZ1ZHRfc2VuZGVkX2xpa2VzX29mXwUIdGFyZ2V0SWQAAAEVZ2V0U2VudEZ1ZHRGb3JEaXNpa2VzAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJ1c2VyUmV3YXJkc0FkZHJlc3MJAKwCAgIYZnVkdF9zZW5kZWRfZGlzbGlrZXNfb2ZfBQh0YXJnZXRJZAAAARFnZXRTZW50RnVkdEZvckJhbgEIdGFyZ2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOdXNlckJhbkFkZHJlc3MJAKwCAgUIdGFyZ2V0SWQCD19hc19hdXRob3JfZnVkdAAAARRnZXRCYWRGdWR0Rm9yRGlzaWtlcwEIdGFyZ2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdXNlclJld2FyZHNBZGRyZXNzCQCsAgICEWZ1ZHRfZGlzbGlrZXNfb2ZfBQh0YXJnZXRJZAAAARBnZXRCYWRGdWR0Rm9yQmFuAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ51c2VyQmFuQWRkcmVzcwkArAICBQh0YXJnZXRJZAIPX2FzX3ZpY3RpbV9mdWR0AAABDWdldFBlcmNlbnRhZ2UCAXABbgQEbmV3UAkAtgIBCQBrAwUBcAUFc2NhbGUAAQQEbmV3TgkAtgIBCQBrAwUBbgUFc2NhbGUAAQMJAAACCQBkAgUBcAUBbgAAAAAECnBlcmNlbnRhZ2UJALwCAwkAuAICCQC8AgMJALcCAgUEbmV3UAkAtgIBAIDRy1sJALYCAQUFc2NhbGUJALcCAgUEbmV3UAUEbmV3TgkAvAIDCQC5AgIJALYCAQCA8rpdCQEKc3FydEJpZ0ludAQJALcCAgkAvAIDCQC5AgIFBG5ld1AFBG5ld04JALYCAQABCQC3AgIFBG5ld1AFBG5ld04JALYCAQDA6OUtAAgACAUHQ0VJTElORwkAtgIBAAEJALcCAgUEbmV3UAUEbmV3TgkAtgIBBQVzY2FsZQkAtwICCQC2AgEAgMLXLwkAvAIDCQC2AgEAgKKXtwEJALYCAQUFc2NhbGUJALcCAgUEbmV3UAUEbmV3TgkAoAMBBQpwZXJjZW50YWdlAQxfZ2V0VXNlckluZm8BCHRhcmdldElkAwkBAiE9AgkAZAIJAGQCBQJ3MQUCdzIFAnczAGQJAAIBAgtiYWQgd2VpZ2h0cwQKbGlrZXNDb3VudAkBDWdldExpa2VzQ291bnQBBQh0YXJnZXRJZAQNZGlzbGlrZXNDb3VudAkBEGdldERpc2xpa2VzQ291bnQBBQh0YXJnZXRJZAQNYmFuTGlrZUF1dGhvcgkBGGdldEJhbkR1cmF0aW9uTGlrZUF1dGhvcgEFCHRhcmdldElkBA1iYW5MaWtlVmljdGltCQEYZ2V0QmFuRHVyYXRpb25MaWtlVmljdGltAQUIdGFyZ2V0SWQEDXJld2FyZHNBbW91bnQJARJnZXRBdmFpbGFibGVSZXdhcmQBBQh0YXJnZXRJZAQKZnVkdEFtb3VudAkAZAIJAGQCCQBkAgkAZAIFDXJld2FyZHNBbW91bnQJARNnZXRTZW50RnVkdEZvckxpa2VzAQUIdGFyZ2V0SWQJARVnZXRTZW50RnVkdEZvckRpc2lrZXMBBQh0YXJnZXRJZAkBEWdldFNlbnRGdWR0Rm9yQmFuAQUIdGFyZ2V0SWQJAQ5nZXRGdWR0QmFsYW5jZQEFCHRhcmdldElkBA1iYWRGdWR0QW1vdW50CQBkAgkBFGdldEJhZEZ1ZHRGb3JEaXNpa2VzAQUIdGFyZ2V0SWQJARBnZXRCYWRGdWR0Rm9yQmFuAQUIdGFyZ2V0SWQEBnJhdGluZwkAZAIJAGQCCQBrAwUCdzEJAQ1nZXRQZXJjZW50YWdlAgUKbGlrZXNDb3VudAUNZGlzbGlrZXNDb3VudABkCQBrAwUCdzIJAQ1nZXRQZXJjZW50YWdlAgUNYmFuTGlrZUF1dGhvcgUNYmFuTGlrZVZpY3RpbQBkCQBrAwUCdzMJAQ1nZXRQZXJjZW50YWdlAgkAawMFCmZ1ZHRBbW91bnQAAQUFc2NhbGUJAGsDBQ1iYWRGdWR0QW1vdW50AAEFBXNjYWxlAGQJAJoKCAUGcmF0aW5nBQpsaWtlc0NvdW50BQ1kaXNsaWtlc0NvdW50BQ1iYW5MaWtlQXV0aG9yBQ1iYW5MaWtlVmljdGltBQpmdWR0QW1vdW50BQ1iYWRGdWR0QW1vdW50BQ1yZXdhcmRzQW1vdW50AwFpAQtnZXRVc2VySW5mbwEIdGFyZ2V0SWQEAXIJAQxfZ2V0VXNlckluZm8BBQh0YXJnZXRJZAkAlAoCBQNuaWwFAXIBaQEUZ2V0VXNlckluZm9CeUFkZHJlc3MBCmFkZHJlc3NTdHIECHRhcmdldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUQdXNlclN0b3JlQWRkcmVzcwkArAICAgZpZF9vZl8FCmFkZHJlc3NTdHICEWFkZHJlc3Mgbm90IGZvdW5kBAFyCQEMX2dldFVzZXJJbmZvAQUIdGFyZ2V0SWQJAJQKAgUDbmlsBQFyAWkBC2NoZWNrUmF0aW5nAgdjaGF0SWQxB2NoYXRJZDIEB3JhdGluZzEICQEMX2dldFVzZXJJbmZvAQUHY2hhdElkMQJfMQQHcmF0aW5nMggJAQxfZ2V0VXNlckluZm8BBQdjaGF0SWQyAl8xCQCUCgIFA25pbAkAlAoCBQdyYXRpbmcxBQdyYXRpbmcyAKLa5wk=", "height": 4102022, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AcGoJ8gSht4ffr3Pf3YnvrMCNTpJTmsfUPbE2EY1JDVJ Next: 7V8XWQE6tE532i1sznXB6iRYPFjaAFT7aMrfXndjSEfQ Diff:
OldNewDifferences
8181 let fudtAmount = ((((rewardsAmount + getSentFudtForLikes(targetId)) + getSentFudtForDisikes(targetId)) + getSentFudtForBan(targetId)) + getFudtBalance(targetId))
8282 let badFudtAmount = (getBadFudtForDisikes(targetId) + getBadFudtForBan(targetId))
8383 let rating = ((fraction(w1, getPercentage(likesCount, dislikesCount), 100) + fraction(w2, getPercentage(banLikeAuthor, banLikeVictim), 100)) + fraction(w3, getPercentage(fraction(fudtAmount, 1, scale), fraction(badFudtAmount, 1, scale)), 100))
84- $Tuple2(nil, $Tuple8(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount, rewardsAmount))
84+ $Tuple8(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount, rewardsAmount)
8585 }
8686
8787
8888 @Callable(i)
8989 func getUserInfo (targetId) = {
9090 let r = _getUserInfo(targetId)
91- r
91+ $Tuple2(nil, r)
9292 }
9393
9494
9797 func getUserInfoByAddress (addressStr) = {
9898 let targetId = valueOrErrorMessage(getString(userStoreAddress, ("id_of_" + addressStr)), "address not found")
9999 let r = _getUserInfo(targetId)
100- r
100+ $Tuple2(nil, r)
101101 }
102102
103103
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let userStoreAddress = Address(base58'3PAuPTy3r9nAszkxnSDLcudYXSAV1J2jKUk')
55
66 let userBanAddress = Address(base58'3PEFts5yWYPixzFimFymb4kqmg93QFgS7hL')
77
88 let userRewardsAddress = Address(base58'3PBcYP8gLKJqoDCVt9oTWaFDCqUppWQr2cK')
99
1010 let fudt = base58'5Lhv8uKnvGxA2cjbFXXKZFASk1cAFp9dRWkmLYhULtSX'
1111
1212 let scale = 100000000
1313
1414 let w1 = valueOrElse(getInteger(this, "weight_1"), 30)
1515
1616 let w2 = valueOrElse(getInteger(this, "weight_2"), 20)
1717
1818 let w3 = valueOrElse(getInteger(this, "weight_3"), 50)
1919
2020 func getLikesCount (targetId) = valueOrElse(getInteger(userStoreAddress, ("likes_of_" + targetId)), 0)
2121
2222
2323 func getDislikesCount (targetId) = valueOrElse(getInteger(userStoreAddress, ("dislikes_of_" + targetId)), 0)
2424
2525
2626 func getBanDurationLikeAuthor (targetId) = valueOrElse(getInteger(userBanAddress, (targetId + "_as_author_duration")), 0)
2727
2828
2929 func getBanDurationLikeVictim (targetId) = valueOrElse(getInteger(userBanAddress, (targetId + "_as_victim_duration")), 0)
3030
3131
3232 func getAddressById (targetId) = getString(userStoreAddress, ("address_of_" + targetId))
3333
3434
3535 func getFudtBalance (targetId) = {
3636 let addressStr = getAddressById(targetId)
3737 if (isDefined(addressStr))
3838 then assetBalance(addressFromStringValue(value(addressStr)), fudt)
3939 else 0
4040 }
4141
4242
4343 func getAvailableReward (targetId) = valueOrElse(getInteger(userRewardsAddress, (targetId + "_available")), 0)
4444
4545
4646 func getSentFudtForLikes (targetId) = valueOrElse(getInteger(userRewardsAddress, ("fudt_sended_likes_of_" + targetId)), 0)
4747
4848
4949 func getSentFudtForDisikes (targetId) = valueOrElse(getInteger(userRewardsAddress, ("fudt_sended_dislikes_of_" + targetId)), 0)
5050
5151
5252 func getSentFudtForBan (targetId) = valueOrElse(getInteger(userBanAddress, (targetId + "_as_author_fudt")), 0)
5353
5454
5555 func getBadFudtForDisikes (targetId) = valueOrElse(getInteger(userRewardsAddress, ("fudt_dislikes_of_" + targetId)), 0)
5656
5757
5858 func getBadFudtForBan (targetId) = valueOrElse(getInteger(userBanAddress, (targetId + "_as_victim_fudt")), 0)
5959
6060
6161 func getPercentage (p,n) = {
6262 let newP = toBigInt(fraction(p, scale, 1))
6363 let newN = toBigInt(fraction(n, scale, 1))
6464 if (((p + n) == 0))
6565 then 0
6666 else {
6767 let percentage = fraction((fraction((newP + toBigInt(192080000)), toBigInt(scale), (newP + newN)) - fraction((toBigInt(196000000) * sqrtBigInt((fraction((newP * newN), toBigInt(1), (newP + newN)) + toBigInt(96040000)), 8, 8, CEILING)), toBigInt(1), (newP + newN))), toBigInt(scale), (toBigInt(100000000) + fraction(toBigInt(384160000), toBigInt(scale), (newP + newN))))
6868 toInt(percentage)
6969 }
7070 }
7171
7272
7373 func _getUserInfo (targetId) = if ((((w1 + w2) + w3) != 100))
7474 then throw("bad weights")
7575 else {
7676 let likesCount = getLikesCount(targetId)
7777 let dislikesCount = getDislikesCount(targetId)
7878 let banLikeAuthor = getBanDurationLikeAuthor(targetId)
7979 let banLikeVictim = getBanDurationLikeVictim(targetId)
8080 let rewardsAmount = getAvailableReward(targetId)
8181 let fudtAmount = ((((rewardsAmount + getSentFudtForLikes(targetId)) + getSentFudtForDisikes(targetId)) + getSentFudtForBan(targetId)) + getFudtBalance(targetId))
8282 let badFudtAmount = (getBadFudtForDisikes(targetId) + getBadFudtForBan(targetId))
8383 let rating = ((fraction(w1, getPercentage(likesCount, dislikesCount), 100) + fraction(w2, getPercentage(banLikeAuthor, banLikeVictim), 100)) + fraction(w3, getPercentage(fraction(fudtAmount, 1, scale), fraction(badFudtAmount, 1, scale)), 100))
84- $Tuple2(nil, $Tuple8(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount, rewardsAmount))
84+ $Tuple8(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount, rewardsAmount)
8585 }
8686
8787
8888 @Callable(i)
8989 func getUserInfo (targetId) = {
9090 let r = _getUserInfo(targetId)
91- r
91+ $Tuple2(nil, r)
9292 }
9393
9494
9595
9696 @Callable(i)
9797 func getUserInfoByAddress (addressStr) = {
9898 let targetId = valueOrErrorMessage(getString(userStoreAddress, ("id_of_" + addressStr)), "address not found")
9999 let r = _getUserInfo(targetId)
100- r
100+ $Tuple2(nil, r)
101101 }
102102
103103
104104
105105 @Callable(i)
106106 func checkRating (chatId1,chatId2) = {
107107 let rating1 = _getUserInfo(chatId1)._1
108108 let rating2 = _getUserInfo(chatId2)._1
109109 $Tuple2(nil, $Tuple2(rating1, rating2))
110110 }
111111
112112

github/deemru/w8io/6500d08 
28.72 ms