tx · 2ztj82w42qDU8tnE5PPxernU6gFWNECcAyMgVuyobJqz

3NAg879tKUJh949h21umkwiaRQhwZftz1BE:  -0.05000000 Waves

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

{ "type": 13, "id": "2ztj82w42qDU8tnE5PPxernU6gFWNECcAyMgVuyobJqz", "fee": 5000000, "feeAssetId": null, "timestamp": 1567520930877, "version": 1, "sender": "3NAg879tKUJh949h21umkwiaRQhwZftz1BE", "senderPublicKey": "BqY2jhkQCcbidtQdQZu6f9RV3AkFAS8VPToHxwYu1KdJ", "proofs": [ "2mLnwahh6Mh7R7q5HqADUCpwbM6kkZ7cpiyGfb2xZB53RcWGJPFDjtRfAAxqgKiuCmTCeKAeiahqJn3sgteczPeT" ], "script": "base64:AAIDAAAAAAAAAAAAAAATAAAAAAN3dnMAAAAAAAX14QAAAAAAFHRpY2tlckFsbG93ZWRMZXR0ZXJzAgAAABpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWgAAAAANdGlja2VyRXhhbXBsZQIAAAADQlRDAAAAAA90aWNrZXJNaW5MZW5ndGgAAAAAAAAAAAEAAAAAD3RpY2tlck1heExlbmd0aAAAAAAAAAAABgAAAAAWZGVzY3JpcHRpb25VcGRhdGVQcmljZQkAAGgAAAACAAAAAAAAAAABBQAAAAN3dnMAAAAAD2xpbmtVcGRhdGVQcmljZQkAAGgAAAACAAAAAAAAAAABBQAAAAN3dnMAAAAAEXRpY2tlclVwZGF0ZVByaWNlCQAAaAAAAAIAAAAAAAAAAAIFAAAAA3d2cwAAAAAcdGlja2VyQ2F0YWxvZ3VlT3JhY2xlQWRkcmVzcwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABAgAAACMzTXhIeFc1VldxNEtyV2NiaEZmeEtyYWZYbTRtTDZyWkhmagAAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNOQURxSG9MTWJNVGZYZFAyVGVCQlN4NW1RWGVQVmozS1ptAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACAAAADmFjY291bnRBZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAA5hY2NvdW50QWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWkFAAAAByRtYXRjaDAFAAAAAWkAAAAAAAAAAAABAAAADWlzU3Vic3RyRXhpc3QAAAACAAAAA3N0cgAAAAZzdWJzdHIEAAAAByRtYXRjaDAJAASzAAAAAgUAAAADc3RyBQAAAAZzdWJzdHIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAFaW5kZXgFAAAAByRtYXRjaDAGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAVpbmRleAUAAAAHJG1hdGNoMAcJAQAAAAV0aHJvdwAAAAABAAAAEWFzc2V0SWRGcm9tU3RyaW5nAAAAAQAAAAdhc3NldElkAwMJAAAAAAAAAgUAAAAHYXNzZXRJZAIAAAAFV0FWRVMGCQAAAAAAAAIFAAAAB2Fzc2V0SWQCAAAAAAUAAAAEdW5pdAkAAlkAAAABBQAAAAdhc3NldElkAQAAAA1pc1ZhbGlkVGlja2VyAAAAAQAAAAZ0aWNrZXIEAAAADXRpY2tlckxldHRlcnMJAAS1AAAAAgUAAAAGdGlja2VyAgAAAAAEAAAADHRpY2tlckxlbmd0aAkAAZAAAAABBQAAAA10aWNrZXJMZXR0ZXJzBAAAAA5pc0xldHRlcjFWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAAABAAAAA5pc0xldHRlcjJWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAABBAAAAA5pc0xldHRlcjNWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAACBAAAAA5pc0xldHRlcjRWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAADBAAAAA5pc0xldHRlcjVWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAAEBAAAAA5pc0xldHRlcjZWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAAFAwkBAAAAAiE9AAAAAgUAAAAGdGlja2VyAgAAAAADAwkAAGcAAAACBQAAAAx0aWNrZXJMZW5ndGgFAAAAD3RpY2tlck1pbkxlbmd0aAkAAGcAAAACBQAAAA90aWNrZXJNYXhMZW5ndGgFAAAADHRpY2tlckxlbmd0aAcDCQAAAAAAAAIAAAAAAAAAAAEFAAAADHRpY2tlckxlbmd0aAUAAAAOaXNMZXR0ZXIxVmFsaWQDCQAAAAAAAAIAAAAAAAAAAAIFAAAADHRpY2tlckxlbmd0aAMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAMFAAAADHRpY2tlckxlbmd0aAMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAQFAAAADHRpY2tlckxlbmd0aAMDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHBQAAAA5pc0xldHRlcjRWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAUFAAAADHRpY2tlckxlbmd0aAMDAwMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcFAAAADmlzTGV0dGVyM1ZhbGlkBwUAAAAOaXNMZXR0ZXI0VmFsaWQHBQAAAA5pc0xldHRlcjVWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAYFAAAADHRpY2tlckxlbmd0aAMDAwMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcFAAAADmlzTGV0dGVyNFZhbGlkBwUAAAAOaXNMZXR0ZXI1VmFsaWQHBQAAAA5pc0xldHRlcjZWYWxpZAcHBwcBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABAAAAB2Fzc2V0SWQEAAAADmFzc2V0UmF0aW5nS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAMYXNzZXRSYXRpbmdfBQAAAAdhc3NldElkAgAAAAJfMQQAAAAQYXNzZXRSYXRpbmdWYWx1ZQkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwUAAAAOYXNzZXRSYXRpbmdLZXkEAAAAE2Fzc2V0UmF0aW5nVHJlc2hvbGQJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MCAAAADnRpY2tlclJhdGluZ18xCQAAZwAAAAIFAAAAEGFzc2V0UmF0aW5nVmFsdWUFAAAAE2Fzc2V0UmF0aW5nVHJlc2hvbGQBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlXZWlnaHQAAAABAAAAB2Fzc2V0SWQEAAAADmFzc2V0V2VpZ2h0S2V5AgAAAAthc3NldFdlaWdodAQAAAAQYXNzZXRXZWlnaHRWYWx1ZQkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwUAAAAOYXNzZXRXZWlnaHRLZXkEAAAAE2Fzc2V0V2VpZ2h0VHJlc2hvbGQJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MCAAAADHRpY2tlcldlaWdodAkAAGcAAAACBQAAABBhc3NldFdlaWdodFZhbHVlBQAAABNhc3NldFdlaWdodFRyZXNob2xkAQAAABtpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5Vm90ZXMAAAABAAAAB2Fzc2V0SWQEAAAADWFzc2V0Vm90ZXNLZXkCAAAACmFzc2V0Vm90ZXMEAAAAD2Fzc2V0Vm90ZXNWYWx1ZQkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwUAAAANYXNzZXRWb3Rlc0tleQQAAAASYXNzZXRWb3Rlc1RyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAAt0aWNrZXJWb3RlcwkAAGcAAAACBQAAAA9hc3NldFZvdGVzVmFsdWUFAAAAEmFzc2V0Vm90ZXNUcmVzaG9sZAEAAAAXaXNVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABAAAAB2Fzc2V0SWQDAwkBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABBQAAAAdhc3NldElkCQEAAAAcaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVdlaWdodAAAAAEFAAAAB2Fzc2V0SWQHCQEAAAAbaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVZvdGVzAAAAAQUAAAAHYXNzZXRJZAcBAAAAGWdldEFzc2V0SXNzdWVyRnJvbUFzc2V0SWQAAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAJAAPsAAAAAQkAAlkAAAABBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAEdW5pdAAAAAEAAAABaQEAAAAMdXBkYXRlVGlja2VyAAAAAgAAAAdhc3NldElkAAAABnRpY2tlcgQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAA1jYWxsZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAD2lzc3VlclRpY2tlcktleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAANaXNzdWVyVGlja2VyXwIAAAABPAUAAAAHYXNzZXRJZAIAAAABPgQAAAAQdGlja2VyRnJvbU9yYWNsZQkABB0AAAACBQAAABx0aWNrZXJDYXRhbG9ndWVPcmFjbGVBZGRyZXNzBQAAAAZ0aWNrZXIEAAAAEWFzc2V0SXNzdWVyQWRyZXNzCQAEJQAAAAEICQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQkAAlkAAAABBQAAAAdhc3NldElkAgAAACdlcnJvciM2LiB0aGVyZSBpcyBubyBhc3NldCB3aXRoIHN1Y2ggaWQAAAAGaXNzdWVyAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAMJAABnAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAABF0aWNrZXJVcGRhdGVQcmljZQMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAARYXNzZXRJc3N1ZXJBZHJlc3MDCQEAAAAXaXNVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABBQAAAAdhc3NldElkAwkAAAAAAAACBQAAABB0aWNrZXJGcm9tT3JhY2xlBQAAAAR1bml0AwkBAAAADWlzVmFsaWRUaWNrZXIAAAABBQAAAAZ0aWNrZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD2lzc3VlclRpY2tlcktleQUAAAAGdGlja2VyBQAAAANuaWwJAAACAAAAAQIAAAA/ZXJyb3IjNS4gVGlja2VyIHNob3VsZCBjb25zaXN0IG9mIDEtNiBjYXBpdGFsIExhdGluIGNoYXJhY3RlcnMuCQAAAgAAAAECAAAAMGVycm9yIzQuIEFzc2V0IHdpdGggc3VjaCB0aWNrZXIgaXMgYWxyZWFkeSBleGlzdAkAAAIAAAABAgAAABplcnJvciMzLiBUb28gbGl0dGxlIHJhdGluZwkAAAIAAAABAgAAADJlcnJvciMyLiBPbmx5IGFzc2V0IGlzc3VlciBjYW4gdXBkYXRlIGFzc2V0IHRpY2tlcgkAAAIAAAABAgAAAD5lcnJvciMyLiBJbnN1ZmZpY2llbnQgcGF5bWVudCBmb3IgYXNzZXQgdGlja2VyIHVwZGF0ZSBzZXJ2aWNlLgkAAAIAAAABAgAAAC5lcnJvciMxLiBUaGUgc2VydmljZSBjYW4gb25seSBiZSBwYWlkIGluIHdhdmVzAAAAAKUwfnY=", "chainId": 84, "height": 659925, "spentComplexity": 0 } View: original | compacted Prev: DVu3TitB8GhonEtmF4yZ91Xh9z5dqcFbKBVNxybsuymJ Next: Ef9JmDLAzcP1P8TfkmSayKu6iYbb4uofS6Xj9BipsdBN Diff:
OldNewDifferences
2020 let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
2121
2222 let tokenRatingOracleAddress = addressFromStringValue("3NADqHoLMbMTfXdP2TeBBSx5mQXePVj3KZm")
23-
24-func getStringFromAccount (accountAddress,key) = match getString(accountAddress, key) {
25- case s: String =>
26- s
27- case _ =>
28- unit
29-}
30-
3123
3224 func getIntegerFromAccount (accountAddress,key) = match getInteger(accountAddress, key) {
3325 case i: Int =>
159151 let payment = extract(i.payment)
160152 let callerAddress = toBase58String(i.caller.bytes)
161153 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
162- let tickerFromOracle = getStringFromAccount(tickerCatalogueOracleAddress, ticker)
154+ let tickerFromOracle = getString(tickerCatalogueOracleAddress, ticker)
163155 let assetIssuerAdress = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "error#6. there is no asset with such id").issuer)
164156 if (!(isDefined(payment.assetId)))
165157 then if ((payment.amount >= tickerUpdatePrice))
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")
23-
24-func getStringFromAccount (accountAddress,key) = match getString(accountAddress, key) {
25- case s: String =>
26- s
27- case _ =>
28- unit
29-}
30-
3123
3224 func getIntegerFromAccount (accountAddress,key) = match getInteger(accountAddress, key) {
3325 case i: Int =>
3426 i
3527 case _ =>
3628 0
3729 }
3830
3931
4032 func isSubstrExist (str,substr) = match indexOf(str, substr) {
4133 case index: Int =>
4234 true
4335 case index: Unit =>
4436 false
4537 case _ =>
4638 throw()
4739 }
4840
4941
5042 func assetIdFromString (assetId) = if (if ((assetId == "WAVES"))
5143 then true
5244 else (assetId == ""))
5345 then unit
5446 else fromBase58String(assetId)
5547
5648
5749 func isValidTicker (ticker) = {
5850 let tickerLetters = split(ticker, "")
5951 let tickerLength = size(tickerLetters)
6052 let isLetter1Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[0])
6153 let isLetter2Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[1])
6254 let isLetter3Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[2])
6355 let isLetter4Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[3])
6456 let isLetter5Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[4])
6557 let isLetter6Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[5])
6658 if ((ticker != ""))
6759 then if (if ((tickerLength >= tickerMinLength))
6860 then (tickerMaxLength >= tickerLength)
6961 else false)
7062 then if ((1 == tickerLength))
7163 then isLetter1Valid
7264 else if ((2 == tickerLength))
7365 then if (isLetter1Valid)
7466 then isLetter2Valid
7567 else false
7668 else if ((3 == tickerLength))
7769 then if (if (isLetter1Valid)
7870 then isLetter2Valid
7971 else false)
8072 then isLetter3Valid
8173 else false
8274 else if ((4 == tickerLength))
8375 then if (if (if (isLetter1Valid)
8476 then isLetter2Valid
8577 else false)
8678 then isLetter3Valid
8779 else false)
8880 then isLetter4Valid
8981 else false
9082 else if ((5 == tickerLength))
9183 then if (if (if (if (isLetter1Valid)
9284 then isLetter2Valid
9385 else false)
9486 then isLetter3Valid
9587 else false)
9688 then isLetter4Valid
9789 else false)
9890 then isLetter5Valid
9991 else false
10092 else if ((6 == tickerLength))
10193 then if (if (if (if (if (isLetter1Valid)
10294 then isLetter2Valid
10395 else false)
10496 then isLetter3Valid
10597 else false)
10698 then isLetter4Valid
10799 else false)
108100 then isLetter5Valid
109101 else false)
110102 then isLetter6Valid
111103 else false
112104 else false
113105 else false
114106 else false
115107 }
116108
117109
118110 func isAssetUpdateAllowedByRating (assetId) = {
119111 let assetRatingKey = (("assetRating_" + assetId) + "_1")
120112 let assetRatingValue = getIntegerFromAccount(tokenRatingOracleAddress, assetRatingKey)
121113 let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerRating_1")
122114 (assetRatingValue >= assetRatingTreshold)
123115 }
124116
125117
126118 func isAssetUpdateAllowedByWeight (assetId) = {
127119 let assetWeightKey = "assetWeight"
128120 let assetWeightValue = getIntegerFromAccount(tokenRatingOracleAddress, assetWeightKey)
129121 let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerWeight")
130122 (assetWeightValue >= assetWeightTreshold)
131123 }
132124
133125
134126 func isAssetUpdateAllowedByVotes (assetId) = {
135127 let assetVotesKey = "assetVotes"
136128 let assetVotesValue = getIntegerFromAccount(tokenRatingOracleAddress, assetVotesKey)
137129 let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerVotes")
138130 (assetVotesValue >= assetVotesTreshold)
139131 }
140132
141133
142134 func isUpdateAllowedByRating (assetId) = if (if (isAssetUpdateAllowedByRating(assetId))
143135 then isAssetUpdateAllowedByWeight(assetId)
144136 else false)
145137 then isAssetUpdateAllowedByVotes(assetId)
146138 else false
147139
148140
149141 func getAssetIssuerFromAssetId (assetId) = match assetInfo(fromBase58String(assetId)) {
150142 case a: Asset =>
151143 a
152144 case _ =>
153145 unit
154146 }
155147
156148
157149 @Callable(i)
158150 func updateTicker (assetId,ticker) = {
159151 let payment = extract(i.payment)
160152 let callerAddress = toBase58String(i.caller.bytes)
161153 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
162- let tickerFromOracle = getStringFromAccount(tickerCatalogueOracleAddress, ticker)
154+ let tickerFromOracle = getString(tickerCatalogueOracleAddress, ticker)
163155 let assetIssuerAdress = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "error#6. there is no asset with such id").issuer)
164156 if (!(isDefined(payment.assetId)))
165157 then if ((payment.amount >= tickerUpdatePrice))
166158 then if ((callerAddress == assetIssuerAdress))
167159 then if (isUpdateAllowedByRating(assetId))
168160 then if ((tickerFromOracle == unit))
169161 then if (isValidTicker(ticker))
170162 then WriteSet([DataEntry(issuerTickerKey, ticker)])
171163 else throw("error#5. Ticker should consist of 1-6 capital Latin characters.")
172164 else throw("error#4. Asset with such ticker is already exist")
173165 else throw("error#3. Too little rating")
174166 else throw("error#2. Only asset issuer can update asset ticker")
175167 else throw("error#2. Insufficient payment for asset ticker update service.")
176168 else throw("error#1. The service can only be paid in waves")
177169 }
178170
179171

github/deemru/w8io/873ac7e 
43.06 ms