tx · DVu3TitB8GhonEtmF4yZ91Xh9z5dqcFbKBVNxybsuymJ

3NAg879tKUJh949h21umkwiaRQhwZftz1BE:  -0.05000000 Waves

2019.09.03 17:17 [659914] smart account 3NAg879tKUJh949h21umkwiaRQhwZftz1BE > SELF 0.00000000 Waves

{ "type": 13, "id": "DVu3TitB8GhonEtmF4yZ91Xh9z5dqcFbKBVNxybsuymJ", "fee": 5000000, "feeAssetId": null, "timestamp": 1567520223529, "version": 1, "sender": "3NAg879tKUJh949h21umkwiaRQhwZftz1BE", "senderPublicKey": "BqY2jhkQCcbidtQdQZu6f9RV3AkFAS8VPToHxwYu1KdJ", "proofs": [ "64Gu4v9A7xNca5gQAMixDL3BBasZdETvDqFZgHcFB1A6NYFKjjrU6kT7QQnd7LR8dVTxExZR7vVBek6iDh9GRJcB" ], "script": "base64:AAIDAAAAAAAAAAAAAAAUAAAAAAN3dnMAAAAAAAX14QAAAAAAFHRpY2tlckFsbG93ZWRMZXR0ZXJzAgAAABpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWgAAAAANdGlja2VyRXhhbXBsZQIAAAADQlRDAAAAAA90aWNrZXJNaW5MZW5ndGgAAAAAAAAAAAEAAAAAD3RpY2tlck1heExlbmd0aAAAAAAAAAAABgAAAAAWZGVzY3JpcHRpb25VcGRhdGVQcmljZQkAAGgAAAACAAAAAAAAAAABBQAAAAN3dnMAAAAAD2xpbmtVcGRhdGVQcmljZQkAAGgAAAACAAAAAAAAAAABBQAAAAN3dnMAAAAAEXRpY2tlclVwZGF0ZVByaWNlCQAAaAAAAAIAAAAAAAAAAAIFAAAAA3d2cwAAAAAcdGlja2VyQ2F0YWxvZ3VlT3JhY2xlQWRkcmVzcwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABAgAAACMzTXhIeFc1VldxNEtyV2NiaEZmeEtyYWZYbTRtTDZyWkhmagAAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNOQURxSG9MTWJNVGZYZFAyVGVCQlN4NW1RWGVQVmozS1ptAQAAABRnZXRTdHJpbmdGcm9tQWNjb3VudAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADmFjY291bnRBZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwUAAAAEdW5pdAEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAOYWNjb3VudEFkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFpBQAAAAckbWF0Y2gwBQAAAAFpAAAAAAAAAAAAAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgAAAANzdHIAAAAGc3Vic3RyBAAAAAckbWF0Y2gwCQAEswAAAAIFAAAAA3N0cgUAAAAGc3Vic3RyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWluZGV4BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFaW5kZXgFAAAAByRtYXRjaDAHCQEAAAAFdGhyb3cAAAAAAQAAABFhc3NldElkRnJvbVN0cmluZwAAAAEAAAAHYXNzZXRJZAMDCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAABVdBVkVTBgkAAAAAAAACBQAAAAdhc3NldElkAgAAAAAFAAAABHVuaXQJAAJZAAAAAQUAAAAHYXNzZXRJZAEAAAANaXNWYWxpZFRpY2tlcgAAAAEAAAAGdGlja2VyBAAAAA10aWNrZXJMZXR0ZXJzCQAEtQAAAAIFAAAABnRpY2tlcgIAAAAABAAAAAx0aWNrZXJMZW5ndGgJAAGQAAAAAQUAAAANdGlja2VyTGV0dGVycwQAAAAOaXNMZXR0ZXIxVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAAQAAAAOaXNMZXR0ZXIyVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAQQAAAAOaXNMZXR0ZXIzVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAgQAAAAOaXNMZXR0ZXI0VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAwQAAAAOaXNMZXR0ZXI1VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAABAQAAAAOaXNMZXR0ZXI2VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAABQMJAQAAAAIhPQAAAAIFAAAABnRpY2tlcgIAAAAAAwMJAABnAAAAAgUAAAAMdGlja2VyTGVuZ3RoBQAAAA90aWNrZXJNaW5MZW5ndGgJAABnAAAAAgUAAAAPdGlja2VyTWF4TGVuZ3RoBQAAAAx0aWNrZXJMZW5ndGgHAwkAAAAAAAACAAAAAAAAAAABBQAAAAx0aWNrZXJMZW5ndGgFAAAADmlzTGV0dGVyMVZhbGlkAwkAAAAAAAACAAAAAAAAAAACBQAAAAx0aWNrZXJMZW5ndGgDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHAwkAAAAAAAACAAAAAAAAAAADBQAAAAx0aWNrZXJMZW5ndGgDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHAwkAAAAAAAACAAAAAAAAAAAEBQAAAAx0aWNrZXJMZW5ndGgDAwMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcFAAAADmlzTGV0dGVyM1ZhbGlkBwUAAAAOaXNMZXR0ZXI0VmFsaWQHAwkAAAAAAAACAAAAAAAAAAAFBQAAAAx0aWNrZXJMZW5ndGgDAwMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcFAAAADmlzTGV0dGVyNFZhbGlkBwUAAAAOaXNMZXR0ZXI1VmFsaWQHAwkAAAAAAAACAAAAAAAAAAAGBQAAAAx0aWNrZXJMZW5ndGgDAwMDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHBQAAAA5pc0xldHRlcjRWYWxpZAcFAAAADmlzTGV0dGVyNVZhbGlkBwUAAAAOaXNMZXR0ZXI2VmFsaWQHBwcHAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQAAAAdhc3NldElkBAAAAA5hc3NldFJhdGluZ0tleQkAASwAAAACCQABLAAAAAICAAAADGFzc2V0UmF0aW5nXwUAAAAHYXNzZXRJZAIAAAACXzEEAAAAEGFzc2V0UmF0aW5nVmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADmFzc2V0UmF0aW5nS2V5BAAAABNhc3NldFJhdGluZ1RyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAA50aWNrZXJSYXRpbmdfMQkAAGcAAAACBQAAABBhc3NldFJhdGluZ1ZhbHVlBQAAABNhc3NldFJhdGluZ1RyZXNob2xkAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5V2VpZ2h0AAAAAQAAAAdhc3NldElkBAAAAA5hc3NldFdlaWdodEtleQIAAAALYXNzZXRXZWlnaHQEAAAAEGFzc2V0V2VpZ2h0VmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADmFzc2V0V2VpZ2h0S2V5BAAAABNhc3NldFdlaWdodFRyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAAx0aWNrZXJXZWlnaHQJAABnAAAAAgUAAAAQYXNzZXRXZWlnaHRWYWx1ZQUAAAATYXNzZXRXZWlnaHRUcmVzaG9sZAEAAAAbaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVZvdGVzAAAAAQAAAAdhc3NldElkBAAAAA1hc3NldFZvdGVzS2V5AgAAAAphc3NldFZvdGVzBAAAAA9hc3NldFZvdGVzVmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADWFzc2V0Vm90ZXNLZXkEAAAAEmFzc2V0Vm90ZXNUcmVzaG9sZAkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwIAAAALdGlja2VyVm90ZXMJAABnAAAAAgUAAAAPYXNzZXRWb3Rlc1ZhbHVlBQAAABJhc3NldFZvdGVzVHJlc2hvbGQBAAAAF2lzVXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQAAAAdhc3NldElkAwMJAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQUAAAAHYXNzZXRJZAkBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlXZWlnaHQAAAABBQAAAAdhc3NldElkBwkBAAAAG2lzQXNzZXRVcGRhdGVBbGxvd2VkQnlWb3RlcwAAAAEFAAAAB2Fzc2V0SWQHAQAAABlnZXRBc3NldElzc3VlckZyb21Bc3NldElkAAAAAQAAAAdhc3NldElkBAAAAAckbWF0Y2gwCQAD7AAAAAEJAAJZAAAAAQUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABHVuaXQAAAABAAAAAWkBAAAADHVwZGF0ZVRpY2tlcgAAAAIAAAAHYXNzZXRJZAAAAAZ0aWNrZXIEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA9pc3N1ZXJUaWNrZXJLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADWlzc3VlclRpY2tlcl8CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4EAAAAEHRpY2tlckZyb21PcmFjbGUJAQAAABRnZXRTdHJpbmdGcm9tQWNjb3VudAAAAAIFAAAAHHRpY2tlckNhdGFsb2d1ZU9yYWNsZUFkZHJlc3MFAAAABnRpY2tlcgQAAAARYXNzZXRJc3N1ZXJBZHJlc3MJAAQlAAAAAQgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQCAAAAJ2Vycm9yIzYuIHRoZXJlIGlzIG5vIGFzc2V0IHdpdGggc3VjaCBpZAAAAAZpc3N1ZXIDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkAwkAAGcAAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAEXRpY2tlclVwZGF0ZVByaWNlAwkAAAAAAAACBQAAAA1jYWxsZXJBZGRyZXNzBQAAABFhc3NldElzc3VlckFkcmVzcwMJAQAAABdpc1VwZGF0ZUFsbG93ZWRCeVJhdGluZwAAAAEFAAAAB2Fzc2V0SWQDCQAAAAAAAAIFAAAAEHRpY2tlckZyb21PcmFjbGUFAAAABHVuaXQDCQEAAAANaXNWYWxpZFRpY2tlcgAAAAEFAAAABnRpY2tlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPaXNzdWVyVGlja2VyS2V5BQAAAAZ0aWNrZXIFAAAAA25pbAkAAAIAAAABAgAAAD9lcnJvciM1LiBUaWNrZXIgc2hvdWxkIGNvbnNpc3Qgb2YgMS02IGNhcGl0YWwgTGF0aW4gY2hhcmFjdGVycy4JAAACAAAAAQIAAAAwZXJyb3IjNC4gQXNzZXQgd2l0aCBzdWNoIHRpY2tlciBpcyBhbHJlYWR5IGV4aXN0CQAAAgAAAAECAAAAGmVycm9yIzMuIFRvbyBsaXR0bGUgcmF0aW5nCQAAAgAAAAECAAAAMmVycm9yIzIuIE9ubHkgYXNzZXQgaXNzdWVyIGNhbiB1cGRhdGUgYXNzZXQgdGlja2VyCQAAAgAAAAECAAAAPmVycm9yIzIuIEluc3VmZmljaWVudCBwYXltZW50IGZvciBhc3NldCB0aWNrZXIgdXBkYXRlIHNlcnZpY2UuCQAAAgAAAAECAAAALmVycm9yIzEuIFRoZSBzZXJ2aWNlIGNhbiBvbmx5IGJlIHBhaWQgaW4gd2F2ZXMAAAAA7P/AEA==", "chainId": 84, "height": 659914, "spentComplexity": 0 } View: original | compacted Prev: 7Y2YBguTGHyXmEUHTZgbTFtoRukTvNPfUiwjesLCxf2s Next: 2ztj82w42qDU8tnE5PPxernU6gFWNECcAyMgVuyobJqz Diff:
OldNewDifferences
118118 func isAssetUpdateAllowedByRating (assetId) = {
119119 let assetRatingKey = (("assetRating_" + assetId) + "_1")
120120 let assetRatingValue = getIntegerFromAccount(tokenRatingOracleAddress, assetRatingKey)
121- let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "assetRating_1")
121+ let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerRating_1")
122122 (assetRatingValue >= assetRatingTreshold)
123123 }
124124
126126 func isAssetUpdateAllowedByWeight (assetId) = {
127127 let assetWeightKey = "assetWeight"
128128 let assetWeightValue = getIntegerFromAccount(tokenRatingOracleAddress, assetWeightKey)
129- let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "assetWeight")
129+ let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerWeight")
130130 (assetWeightValue >= assetWeightTreshold)
131131 }
132132
134134 func isAssetUpdateAllowedByVotes (assetId) = {
135135 let assetVotesKey = "assetVotes"
136136 let assetVotesValue = getIntegerFromAccount(tokenRatingOracleAddress, assetVotesKey)
137- let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "assetVotes")
137+ let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerVotes")
138138 (assetVotesValue >= assetVotesTreshold)
139139 }
140140
160160 let callerAddress = toBase58String(i.caller.bytes)
161161 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
162162 let tickerFromOracle = getStringFromAccount(tickerCatalogueOracleAddress, ticker)
163- let assetIssuerAdress = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "there is no asset with such id").issuer)
163+ let assetIssuerAdress = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "error#6. there is no asset with such id").issuer)
164164 if (!(isDefined(payment.assetId)))
165165 then if ((payment.amount >= tickerUpdatePrice))
166166 then if ((callerAddress == assetIssuerAdress))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let wvs = 100000000
55
66 let tickerAllowedLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
77
88 let tickerExample = "BTC"
99
1010 let tickerMinLength = 1
1111
1212 let tickerMaxLength = 6
1313
1414 let descriptionUpdatePrice = (1 * wvs)
1515
1616 let linkUpdatePrice = (1 * wvs)
1717
1818 let tickerUpdatePrice = (2 * wvs)
1919
2020 let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
2121
2222 let tokenRatingOracleAddress = addressFromStringValue("3NADqHoLMbMTfXdP2TeBBSx5mQXePVj3KZm")
2323
2424 func getStringFromAccount (accountAddress,key) = match getString(accountAddress, key) {
2525 case s: String =>
2626 s
2727 case _ =>
2828 unit
2929 }
3030
3131
3232 func getIntegerFromAccount (accountAddress,key) = match getInteger(accountAddress, key) {
3333 case i: Int =>
3434 i
3535 case _ =>
3636 0
3737 }
3838
3939
4040 func isSubstrExist (str,substr) = match indexOf(str, substr) {
4141 case index: Int =>
4242 true
4343 case index: Unit =>
4444 false
4545 case _ =>
4646 throw()
4747 }
4848
4949
5050 func assetIdFromString (assetId) = if (if ((assetId == "WAVES"))
5151 then true
5252 else (assetId == ""))
5353 then unit
5454 else fromBase58String(assetId)
5555
5656
5757 func isValidTicker (ticker) = {
5858 let tickerLetters = split(ticker, "")
5959 let tickerLength = size(tickerLetters)
6060 let isLetter1Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[0])
6161 let isLetter2Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[1])
6262 let isLetter3Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[2])
6363 let isLetter4Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[3])
6464 let isLetter5Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[4])
6565 let isLetter6Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[5])
6666 if ((ticker != ""))
6767 then if (if ((tickerLength >= tickerMinLength))
6868 then (tickerMaxLength >= tickerLength)
6969 else false)
7070 then if ((1 == tickerLength))
7171 then isLetter1Valid
7272 else if ((2 == tickerLength))
7373 then if (isLetter1Valid)
7474 then isLetter2Valid
7575 else false
7676 else if ((3 == tickerLength))
7777 then if (if (isLetter1Valid)
7878 then isLetter2Valid
7979 else false)
8080 then isLetter3Valid
8181 else false
8282 else if ((4 == tickerLength))
8383 then if (if (if (isLetter1Valid)
8484 then isLetter2Valid
8585 else false)
8686 then isLetter3Valid
8787 else false)
8888 then isLetter4Valid
8989 else false
9090 else if ((5 == tickerLength))
9191 then if (if (if (if (isLetter1Valid)
9292 then isLetter2Valid
9393 else false)
9494 then isLetter3Valid
9595 else false)
9696 then isLetter4Valid
9797 else false)
9898 then isLetter5Valid
9999 else false
100100 else if ((6 == tickerLength))
101101 then if (if (if (if (if (isLetter1Valid)
102102 then isLetter2Valid
103103 else false)
104104 then isLetter3Valid
105105 else false)
106106 then isLetter4Valid
107107 else false)
108108 then isLetter5Valid
109109 else false)
110110 then isLetter6Valid
111111 else false
112112 else false
113113 else false
114114 else false
115115 }
116116
117117
118118 func isAssetUpdateAllowedByRating (assetId) = {
119119 let assetRatingKey = (("assetRating_" + assetId) + "_1")
120120 let assetRatingValue = getIntegerFromAccount(tokenRatingOracleAddress, assetRatingKey)
121- let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "assetRating_1")
121+ let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerRating_1")
122122 (assetRatingValue >= assetRatingTreshold)
123123 }
124124
125125
126126 func isAssetUpdateAllowedByWeight (assetId) = {
127127 let assetWeightKey = "assetWeight"
128128 let assetWeightValue = getIntegerFromAccount(tokenRatingOracleAddress, assetWeightKey)
129- let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "assetWeight")
129+ let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerWeight")
130130 (assetWeightValue >= assetWeightTreshold)
131131 }
132132
133133
134134 func isAssetUpdateAllowedByVotes (assetId) = {
135135 let assetVotesKey = "assetVotes"
136136 let assetVotesValue = getIntegerFromAccount(tokenRatingOracleAddress, assetVotesKey)
137- let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "assetVotes")
137+ let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerVotes")
138138 (assetVotesValue >= assetVotesTreshold)
139139 }
140140
141141
142142 func isUpdateAllowedByRating (assetId) = if (if (isAssetUpdateAllowedByRating(assetId))
143143 then isAssetUpdateAllowedByWeight(assetId)
144144 else false)
145145 then isAssetUpdateAllowedByVotes(assetId)
146146 else false
147147
148148
149149 func getAssetIssuerFromAssetId (assetId) = match assetInfo(fromBase58String(assetId)) {
150150 case a: Asset =>
151151 a
152152 case _ =>
153153 unit
154154 }
155155
156156
157157 @Callable(i)
158158 func updateTicker (assetId,ticker) = {
159159 let payment = extract(i.payment)
160160 let callerAddress = toBase58String(i.caller.bytes)
161161 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
162162 let tickerFromOracle = getStringFromAccount(tickerCatalogueOracleAddress, ticker)
163- let assetIssuerAdress = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "there is no asset with such id").issuer)
163+ let assetIssuerAdress = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "error#6. there is no asset with such id").issuer)
164164 if (!(isDefined(payment.assetId)))
165165 then if ((payment.amount >= tickerUpdatePrice))
166166 then if ((callerAddress == assetIssuerAdress))
167167 then if (isUpdateAllowedByRating(assetId))
168168 then if ((tickerFromOracle == unit))
169169 then if (isValidTicker(ticker))
170170 then WriteSet([DataEntry(issuerTickerKey, ticker)])
171171 else throw("error#5. Ticker should consist of 1-6 capital Latin characters.")
172172 else throw("error#4. Asset with such ticker is already exist")
173173 else throw("error#3. Too little rating")
174174 else throw("error#2. Only asset issuer can update asset ticker")
175175 else throw("error#2. Insufficient payment for asset ticker update service.")
176176 else throw("error#1. The service can only be paid in waves")
177177 }
178178
179179

github/deemru/w8io/873ac7e 
58.77 ms