tx · Haqc5RMUDfPwWdQ4uMEPigyBdgMeXvpCbefcivCKfhif

3P8ro9dBawKxR2rQPtSX4hVfc1yrUjjCz8X:  -0.01000000 Waves

2024.03.26 14:15 [4100861] smart account 3P8ro9dBawKxR2rQPtSX4hVfc1yrUjjCz8X > SELF 0.00000000 Waves

{ "type": 13, "id": "Haqc5RMUDfPwWdQ4uMEPigyBdgMeXvpCbefcivCKfhif", "fee": 1000000, "feeAssetId": null, "timestamp": 1711451766744, "version": 2, "chainId": 87, "sender": "3P8ro9dBawKxR2rQPtSX4hVfc1yrUjjCz8X", "senderPublicKey": "EVAMa5pPNoDnd1p8GoMUWb4A6gjzDXg2tLK2Tu8mie3R", "proofs": [ "3367cEGftXCCGBxKqbJEeBtitbsSn7534LAPUeWzEgDaJYXePYjW1ymiSNMZPNkQ817B3a5JqtgMDsCwKHf39WL3" ], "script": "base64:BgIMCAISAwoBCBIDCgEIFgAQdXNlclN0b3JlQWRkcmVzcwkBB0FkZHJlc3MBARoBV2JwScgGQxUjtOvQa1WtNyBCkVT7fZ2DEQAOdXNlckJhbkFkZHJlc3MJAQdBZGRyZXNzAQEaAVeHOYaIcxLUHVrZcLvPfTZ3nSoJlZSzNNMAEnVzZXJSZXdhcmRzQWRkcmVzcwkBB0FkZHJlc3MBARoBV2o4yTAlb0aZIFVpYfXCCi2qYWdAQxdwnAAEZnVkdAEgQHsMDzhOtNXIuUCwZgK73eR+3cH2sC4MYy5Hn0fVndwABXNjYWxlAIDC1y8AAncxCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHdlaWdodF8xAB4AAncyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHdlaWdodF8yABQAAnczCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCCHdlaWdodF8zADIBDWdldExpa2VzQ291bnQBCHRhcmdldElkCQELdmFsdWVPckVsc2UCCQCaCAIFEHVzZXJTdG9yZUFkZHJlc3MJAKwCAgIJbGlrZXNfb2ZfBQh0YXJnZXRJZAAAARBnZXREaXNsaWtlc0NvdW50AQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRB1c2VyU3RvcmVBZGRyZXNzCQCsAgICDGRpc2xpa2VzX29mXwUIdGFyZ2V0SWQAAAEYZ2V0QmFuRHVyYXRpb25MaWtlQXV0aG9yAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ51c2VyQmFuQWRkcmVzcwkArAICBQh0YXJnZXRJZAITX2FzX2F1dGhvcl9kdXJhdGlvbgAAARhnZXRCYW5EdXJhdGlvbkxpa2VWaWN0aW0BCHRhcmdldElkCQELdmFsdWVPckVsc2UCCQCaCAIFDnVzZXJCYW5BZGRyZXNzCQCsAgIFCHRhcmdldElkAhNfYXNfdmljdGltX2R1cmF0aW9uAAABDmdldEFkZHJlc3NCeUlkAQh0YXJnZXRJZAkAnQgCBRB1c2VyU3RvcmVBZGRyZXNzCQCsAgICC2FkZHJlc3Nfb2ZfBQh0YXJnZXRJZAEOZ2V0RnVkdEJhbGFuY2UBCHRhcmdldElkBAphZGRyZXNzU3RyCQEOZ2V0QWRkcmVzc0J5SWQBBQh0YXJnZXRJZAMJAQlpc0RlZmluZWQBBQphZGRyZXNzU3RyCQDwBwIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFCmFkZHJlc3NTdHIFBGZ1ZHQAAAESZ2V0QXZhaWxhYmxlUmV3YXJkAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJ1c2VyUmV3YXJkc0FkZHJlc3MJAKwCAgUIdGFyZ2V0SWQCCl9hdmFpbGFibGUAAAETZ2V0U2VudEZ1ZHRGb3JMaWtlcwEIdGFyZ2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdXNlclJld2FyZHNBZGRyZXNzCQCsAgICFWZ1ZHRfc2VuZGVkX2xpa2VzX29mXwUIdGFyZ2V0SWQAAAEVZ2V0U2VudEZ1ZHRGb3JEaXNpa2VzAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJ1c2VyUmV3YXJkc0FkZHJlc3MJAKwCAgIYZnVkdF9zZW5kZWRfZGlzbGlrZXNfb2ZfBQh0YXJnZXRJZAAAARFnZXRTZW50RnVkdEZvckJhbgEIdGFyZ2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOdXNlckJhbkFkZHJlc3MJAKwCAgUIdGFyZ2V0SWQCD19hc19hdXRob3JfZnVkdAAAARRnZXRCYWRGdWR0Rm9yRGlzaWtlcwEIdGFyZ2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdXNlclJld2FyZHNBZGRyZXNzCQCsAgICEWZ1ZHRfZGlzbGlrZXNfb2ZfBQh0YXJnZXRJZAAAARBnZXRCYWRGdWR0Rm9yQmFuAQh0YXJnZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ51c2VyQmFuQWRkcmVzcwkArAICBQh0YXJnZXRJZAIPX2FzX3ZpY3RpbV9mdWR0AAABDWdldFBlcmNlbnRhZ2UCAXABbgQEbmV3UAkAtgIBCQBrAwUBcAUFc2NhbGUAAQQEbmV3TgkAtgIBCQBrAwUBbgUFc2NhbGUAAQMJAAACCQBkAgUBcAUBbgAAAAAECnBlcmNlbnRhZ2UJALwCAwkAuAICCQC8AgMJALcCAgUEbmV3UAkAtgIBAIDRy1sJALYCAQUFc2NhbGUJALcCAgUEbmV3UAUEbmV3TgkAvAIDCQC5AgIJALYCAQCA8rpdCQEKc3FydEJpZ0ludAQJALcCAgkAvAIDCQC5AgIFBG5ld1AFBG5ld04JALYCAQABCQC3AgIFBG5ld1AFBG5ld04JALYCAQDA6OUtAAgACAUHQ0VJTElORwkAtgIBAAEJALcCAgUEbmV3UAUEbmV3TgkAtgIBBQVzY2FsZQkAtwICCQC2AgEAgMLXLwkAvAIDCQC2AgEAgKKXtwEJALYCAQUFc2NhbGUJALcCAgUEbmV3UAUEbmV3TgkAoAMBBQpwZXJjZW50YWdlAQxfZ2V0VXNlckluZm8BCHRhcmdldElkAwkBAiE9AgkAZAIJAGQCBQJ3MQUCdzIFAnczAGQJAAIBAgtiYWQgd2VpZ2h0cwQKbGlrZXNDb3VudAkBDWdldExpa2VzQ291bnQBBQh0YXJnZXRJZAQNZGlzbGlrZXNDb3VudAkBEGdldERpc2xpa2VzQ291bnQBBQh0YXJnZXRJZAQNYmFuTGlrZUF1dGhvcgkBGGdldEJhbkR1cmF0aW9uTGlrZUF1dGhvcgEFCHRhcmdldElkBA1iYW5MaWtlVmljdGltCQEYZ2V0QmFuRHVyYXRpb25MaWtlVmljdGltAQUIdGFyZ2V0SWQEDXJld2FyZHNBbW91bnQJARJnZXRBdmFpbGFibGVSZXdhcmQBBQh0YXJnZXRJZAQKZnVkdEFtb3VudAkAZAIJAGQCCQBkAgkAZAIFDXJld2FyZHNBbW91bnQJARNnZXRTZW50RnVkdEZvckxpa2VzAQUIdGFyZ2V0SWQJARVnZXRTZW50RnVkdEZvckRpc2lrZXMBBQh0YXJnZXRJZAkBEWdldFNlbnRGdWR0Rm9yQmFuAQUIdGFyZ2V0SWQJAQ5nZXRGdWR0QmFsYW5jZQEFCHRhcmdldElkBA1iYWRGdWR0QW1vdW50CQBkAgkBFGdldEJhZEZ1ZHRGb3JEaXNpa2VzAQUIdGFyZ2V0SWQJARBnZXRCYWRGdWR0Rm9yQmFuAQUIdGFyZ2V0SWQEBnJhdGluZwkAZAIJAGQCCQBrAwUCdzEJAQ1nZXRQZXJjZW50YWdlAgUKbGlrZXNDb3VudAUNZGlzbGlrZXNDb3VudABkCQBrAwUCdzIJAQ1nZXRQZXJjZW50YWdlAgUNYmFuTGlrZUF1dGhvcgUNYmFuTGlrZVZpY3RpbQBkCQBrAwUCdzMJAQ1nZXRQZXJjZW50YWdlAgUKZnVkdEFtb3VudAUNYmFkRnVkdEFtb3VudABkCQCUCgIFA25pbAkAmgoIBQZyYXRpbmcFCmxpa2VzQ291bnQFDWRpc2xpa2VzQ291bnQFDWJhbkxpa2VBdXRob3IFDWJhbkxpa2VWaWN0aW0FCmZ1ZHRBbW91bnQFDWJhZEZ1ZHRBbW91bnQFDXJld2FyZHNBbW91bnQCAWkBC2dldFVzZXJJbmZvAQh0YXJnZXRJZAQBcgkBDF9nZXRVc2VySW5mbwEFCHRhcmdldElkBQFyAWkBFGdldFVzZXJJbmZvQnlBZGRyZXNzAQphZGRyZXNzU3RyBAh0YXJnZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFEHVzZXJTdG9yZUFkZHJlc3MJAKwCAgIGaWRfb2ZfBQphZGRyZXNzU3RyAhFhZGRyZXNzIG5vdCBmb3VuZAQBcgkBDF9nZXRVc2VySW5mbwEFCHRhcmdldElkBQFyAOm8ErU=", "height": 4100861, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DqNRjjnY55F6yFFS72SGvSkHNjhsDvbLAd1uDtNa6EGo Next: 3257skMzdVbfQoEexDsBDuT2MGLciNkPbr8u8krduZdf Diff:
OldNewDifferences
7777 let dislikesCount = getDislikesCount(targetId)
7878 let banLikeAuthor = getBanDurationLikeAuthor(targetId)
7979 let banLikeVictim = getBanDurationLikeVictim(targetId)
80- let fudtAmount = (((getAvailableReward(targetId) + getSentFudtForLikes(targetId)) + getSentFudtForDisikes(targetId)) + getSentFudtForBan(targetId))
80+ let rewardsAmount = getAvailableReward(targetId)
81+ let fudtAmount = ((((rewardsAmount + getSentFudtForLikes(targetId)) + getSentFudtForDisikes(targetId)) + getSentFudtForBan(targetId)) + getFudtBalance(targetId))
8182 let badFudtAmount = (getBadFudtForDisikes(targetId) + getBadFudtForBan(targetId))
8283 let rating = ((fraction(w1, getPercentage(likesCount, dislikesCount), 100) + fraction(w2, getPercentage(banLikeAuthor, banLikeVictim), 100)) + fraction(w3, getPercentage(fudtAmount, badFudtAmount), 100))
83- $Tuple2(nil, $Tuple7(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount))
84+ $Tuple2(nil, $Tuple8(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount, rewardsAmount))
8485 }
8586
8687
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)
80- let fudtAmount = (((getAvailableReward(targetId) + getSentFudtForLikes(targetId)) + getSentFudtForDisikes(targetId)) + getSentFudtForBan(targetId))
80+ let rewardsAmount = getAvailableReward(targetId)
81+ let fudtAmount = ((((rewardsAmount + getSentFudtForLikes(targetId)) + getSentFudtForDisikes(targetId)) + getSentFudtForBan(targetId)) + getFudtBalance(targetId))
8182 let badFudtAmount = (getBadFudtForDisikes(targetId) + getBadFudtForBan(targetId))
8283 let rating = ((fraction(w1, getPercentage(likesCount, dislikesCount), 100) + fraction(w2, getPercentage(banLikeAuthor, banLikeVictim), 100)) + fraction(w3, getPercentage(fudtAmount, badFudtAmount), 100))
83- $Tuple2(nil, $Tuple7(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount))
84+ $Tuple2(nil, $Tuple8(rating, likesCount, dislikesCount, banLikeAuthor, banLikeVictim, fudtAmount, badFudtAmount, rewardsAmount))
8485 }
8586
8687
8788 @Callable(i)
8889 func getUserInfo (targetId) = {
8990 let r = _getUserInfo(targetId)
9091 r
9192 }
9293
9394
9495
9596 @Callable(i)
9697 func getUserInfoByAddress (addressStr) = {
9798 let targetId = valueOrErrorMessage(getString(userStoreAddress, ("id_of_" + addressStr)), "address not found")
9899 let r = _getUserInfo(targetId)
99100 r
100101 }
101102
102103

github/deemru/w8io/6500d08 
32.04 ms