tx · 72S48YsSEKC7urFci1L8py3koXBs3DudgdUdt49PVyx6

3NAg879tKUJh949h21umkwiaRQhwZftz1BE:  -0.05000000 Waves

2019.09.08 16:04 [667132] smart account 3NAg879tKUJh949h21umkwiaRQhwZftz1BE > SELF 0.00000000 Waves

{ "type": 13, "id": "72S48YsSEKC7urFci1L8py3koXBs3DudgdUdt49PVyx6", "fee": 5000000, "feeAssetId": null, "timestamp": 1567947879147, "version": 1, "sender": "3NAg879tKUJh949h21umkwiaRQhwZftz1BE", "senderPublicKey": "BqY2jhkQCcbidtQdQZu6f9RV3AkFAS8VPToHxwYu1KdJ", "proofs": [ "QdimugxuauFbSw71chNyz6ETPu9hGba4gM7SEg5ftRhqwuZqVj6C2aKNqGhhjx5TTgm12dYKkuDQuAVq9sZgqkn" ], "script": "base64:AAIDAAAAAAAAAAAAAAAeAAAAAAN3dnMAAAAAAAX14QAAAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3ICAAAAGzxub3RTdXBwb3J0ZWRDdXJyZW5jeUVycm9yPgAAAAAXaXNzdWVyQWNjZXNzRGVuaWVkRXJyb3ICAAAAGTxpc3N1ZXJBY2Nlc3NEZW5pZWRFcnJvcj4AAAAAFW5vdEVub3VnaFBheW1lbnRFcnJvcgIAAAAXPG5vdEVub3VnaFBheW1lbnRFcnJvcj4AAAAAJHRpY2tlclZhbGlkYXRpb25Ob3RFbm91Z2hSYXRpbmdFcnJvcgIAAAAmPHRpY2tlclZhbGlkYXRpb25Ob3RFbm91Z2hSYXRpbmdFcnJvcj4AAAAAInRpY2tlclZhbGlkYXRpb25UaWNrZXJJc0V4aXN0RXJyb3ICAAAAJDx0aWNrZXJWYWxpZGF0aW9uVGlja2VySXNFeGlzdEVycm9yPgAAAAAgdGlja2VyVmFsaWRhdGlvbldyb25nRm9ybWF0RXJyb3ICAAAAIjx0aWNrZXJWYWxpZGF0aW9uV3JvbmdGb3JtYXRFcnJvcj4AAAAAFW5vbkV4aXN0ZW50QXNzZXRFcnJvcgIAAAAXPG5vbkV4aXN0ZW50QXNzZXRFcnJvcj4AAAAADm5vUGF5bWVudEVycm9yAgAAABA8bm9QYXltZW50RXJyb3I+AAAAABZkZXNjcmlwdGlvblVwZGF0ZVByaWNlCQAAaAAAAAIAAAAAAAAAAAEFAAAAA3d2cwAAAAAPbGlua1VwZGF0ZVByaWNlCQAAaAAAAAIAAAAAAAAAAAEFAAAAA3d2cwAAAAARdGlja2VyVXBkYXRlUHJpY2UJAABoAAAAAgAAAAAAAAAAAgUAAAADd3ZzAAAAAA90aWNrZXJNaW5MZW5ndGgAAAAAAAAAAAEAAAAAD3RpY2tlck1heExlbmd0aAAAAAAAAAAABgAAAAAUdGlja2VyQWxsb3dlZExldHRlcnMCAAAAGkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaAAAAABx0aWNrZXJDYXRhbG9ndWVPcmFjbGVBZGRyZXNzCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNNeEh4VzVWV3E0S3JXY2JoRmZ4S3JhZlhtNG1MNnJaSGZqAAAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM05BRHFIb0xNYk1UZlhkUDJUZUJCU3g1bVFYZVBWajNLWm0BAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAADmFjY291bnRBZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQAAAAAAAAAAAAEAAAANaXNTdWJzdHJFeGlzdAAAAAIAAAADc3RyAAAABnN1YnN0cgQAAAAHJG1hdGNoMAkABLMAAAACBQAAAANzdHIFAAAABnN1YnN0cgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpbmRleAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABWluZGV4BQAAAAckbWF0Y2gwBwkBAAAABXRocm93AAAAAAEAAAANaXNWYWxpZFRpY2tlcgAAAAEAAAAGdGlja2VyBAAAAA10aWNrZXJMZXR0ZXJzCQAEtQAAAAIFAAAABnRpY2tlcgIAAAAABAAAAAx0aWNrZXJMZW5ndGgJAAGQAAAAAQUAAAANdGlja2VyTGV0dGVycwQAAAAOaXNMZXR0ZXIxVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAAQAAAAOaXNMZXR0ZXIyVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAQQAAAAOaXNMZXR0ZXIzVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAgQAAAAOaXNMZXR0ZXI0VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAwQAAAAOaXNMZXR0ZXI1VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAABAQAAAAOaXNMZXR0ZXI2VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAABQMJAQAAAAIhPQAAAAIFAAAABnRpY2tlcgIAAAAAAwMJAABnAAAAAgUAAAAMdGlja2VyTGVuZ3RoBQAAAA90aWNrZXJNaW5MZW5ndGgJAABnAAAAAgUAAAAPdGlja2VyTWF4TGVuZ3RoBQAAAAx0aWNrZXJMZW5ndGgHAwkAAAAAAAACAAAAAAAAAAABBQAAAAx0aWNrZXJMZW5ndGgFAAAADmlzTGV0dGVyMVZhbGlkAwkAAAAAAAACAAAAAAAAAAACBQAAAAx0aWNrZXJMZW5ndGgDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHAwkAAAAAAAACAAAAAAAAAAADBQAAAAx0aWNrZXJMZW5ndGgDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHAwkAAAAAAAACAAAAAAAAAAAEBQAAAAx0aWNrZXJMZW5ndGgDAwMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcFAAAADmlzTGV0dGVyM1ZhbGlkBwUAAAAOaXNMZXR0ZXI0VmFsaWQHAwkAAAAAAAACAAAAAAAAAAAFBQAAAAx0aWNrZXJMZW5ndGgDAwMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcFAAAADmlzTGV0dGVyNFZhbGlkBwUAAAAOaXNMZXR0ZXI1VmFsaWQHAwkAAAAAAAACAAAAAAAAAAAGBQAAAAx0aWNrZXJMZW5ndGgDAwMDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHBQAAAA5pc0xldHRlcjRWYWxpZAcFAAAADmlzTGV0dGVyNVZhbGlkBwUAAAAOaXNMZXR0ZXI2VmFsaWQHBwcHAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQAAAAdhc3NldElkBAAAAA5hc3NldFJhdGluZ0tleQkAASwAAAACCQABLAAAAAICAAAADGFzc2V0UmF0aW5nXwUAAAAHYXNzZXRJZAIAAAACXzEEAAAAEGFzc2V0UmF0aW5nVmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADmFzc2V0UmF0aW5nS2V5BAAAABNhc3NldFJhdGluZ1RyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAA50aWNrZXJSYXRpbmdfMQkAAGcAAAACBQAAABBhc3NldFJhdGluZ1ZhbHVlBQAAABNhc3NldFJhdGluZ1RyZXNob2xkAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5V2VpZ2h0AAAAAQAAAAdhc3NldElkBAAAAA5hc3NldFdlaWdodEtleQIAAAALYXNzZXRXZWlnaHQEAAAAEGFzc2V0V2VpZ2h0VmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADmFzc2V0V2VpZ2h0S2V5BAAAABNhc3NldFdlaWdodFRyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAAx0aWNrZXJXZWlnaHQJAABnAAAAAgUAAAAQYXNzZXRXZWlnaHRWYWx1ZQUAAAATYXNzZXRXZWlnaHRUcmVzaG9sZAEAAAAbaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVZvdGVzAAAAAQAAAAdhc3NldElkBAAAAA1hc3NldFZvdGVzS2V5AgAAAAphc3NldFZvdGVzBAAAAA9hc3NldFZvdGVzVmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADWFzc2V0Vm90ZXNLZXkEAAAAEmFzc2V0Vm90ZXNUcmVzaG9sZAkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwIAAAALdGlja2VyVm90ZXMJAABnAAAAAgUAAAAPYXNzZXRWb3Rlc1ZhbHVlBQAAABJhc3NldFZvdGVzVHJlc2hvbGQBAAAAF2lzVXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQAAAAdhc3NldElkAwMJAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQUAAAAHYXNzZXRJZAkBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlXZWlnaHQAAAABBQAAAAdhc3NldElkBwkBAAAAG2lzQXNzZXRVcGRhdGVBbGxvd2VkQnlWb3RlcwAAAAEFAAAAB2Fzc2V0SWQHAQAAACBnZXRBc3NldElzc3VlckFkZHJlc3NGcm9tQXNzZXRJZAAAAAEAAAAHYXNzZXRJZAkABCUAAAABCAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEJAAJZAAAAAQUAAAAHYXNzZXRJZAUAAAAVbm9uRXhpc3RlbnRBc3NldEVycm9yAAAABmlzc3VlcgEAAAAKZ2V0UGF5bWVudAAAAAEAAAABaQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAABaQAAAAdwYXltZW50BQAAAA5ub1BheW1lbnRFcnJvcgEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEAAAABaQQAAAAHcGF5bWVudAkBAAAACmdldFBheW1lbnQAAAABBQAAAAFpAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAYHAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACAAAAAWkAAAAPcmVxdWlyZWRQYXltZW50BAAAAAdwYXltZW50CQEAAAAKZ2V0UGF5bWVudAAAAAEFAAAAAWkDCQAAZwAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAPcmVxdWlyZWRQYXltZW50BgcBAAAAE2lzQ2FsbGVyQXNzZXRJc3N1ZXIAAAACAAAAAWkAAAAHYXNzZXRJZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFhc3NldElzc3VlckFkcmVzcwkBAAAAIGdldEFzc2V0SXNzdWVyQWRkcmVzc0Zyb21Bc3NldElkAAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAARYXNzZXRJc3N1ZXJBZHJlc3MGBwEAAAAFZGVidWcAAAACAAAAAWkAAAAHYXNzZXRJZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFhc3NldElzc3VlckFkcmVzcwkBAAAAIGdldEFzc2V0SXNzdWVyQWRkcmVzc0Zyb21Bc3NldElkAAAAAQUAAAAHYXNzZXRJZAQAAAAGcmVzdWx0CQABLAAAAAIJAAEsAAAAAgUAAAANY2FsbGVyQWRkcmVzcwIAAAABIAUAAAARYXNzZXRJc3N1ZXJBZHJlc3MJAAACAAAAAQUAAAAGcmVzdWx0AAAAAwAAAAFpAQAAAAx1cGRhdGVUaWNrZXIAAAACAAAAB2Fzc2V0SWQAAAAGdGlja2VyBAAAAA9pc3N1ZXJUaWNrZXJLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADWlzc3VlclRpY2tlcl8CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4JAQAAAAVkZWJ1ZwAAAAIFAAAAAWkFAAAAB2Fzc2V0SWQAAAABaQEAAAARdXBkYXRlRGVzY3JpcHRpb24AAAACAAAAB2Fzc2V0SWQAAAALZGVzY3JpcHRpb24EAAAAFGlzc3VlckRlc2NyaXB0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJpc3N1ZXJEZXNjcmlwdGlvbl8CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4DCQEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEFAAAAAWkDCQEAAAAPaXNFbm91Z2hQYXltZW50AAAAAgUAAAABaQUAAAAWZGVzY3JpcHRpb25VcGRhdGVQcmljZQMJAQAAABNpc0NhbGxlckFzc2V0SXNzdWVyAAAAAgUAAAABaQUAAAAHYXNzZXRJZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAUaXNzdWVyRGVzY3JpcHRpb25LZXkFAAAAC2Rlc2NyaXB0aW9uBQAAAANuaWwJAAACAAAAAQUAAAAXaXNzdWVyQWNjZXNzRGVuaWVkRXJyb3IJAAACAAAAAQUAAAAVbm90RW5vdWdoUGF5bWVudEVycm9yCQAAAgAAAAEFAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3IAAAABaQEAAAAKdXBkYXRlTGluawAAAAIAAAAHYXNzZXRJZAAAAARsaW5rBAAAAA1pc3N1ZXJMaW5rS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtpc3N1ZXJMaW5rXwIAAAABPAUAAAAHYXNzZXRJZAIAAAABPgMJAQAAABBpc1BheW1lbnRJbldhdmVzAAAAAQUAAAABaQMJAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACBQAAAAFpBQAAAA9saW5rVXBkYXRlUHJpY2UDCQEAAAATaXNDYWxsZXJBc3NldElzc3VlcgAAAAIFAAAAAWkFAAAAB2Fzc2V0SWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWlzc3VlckxpbmtLZXkFAAAABGxpbmsFAAAAA25pbAkAAAIAAAABBQAAABdpc3N1ZXJBY2Nlc3NEZW5pZWRFcnJvcgkAAAIAAAABBQAAABVub3RFbm91Z2hQYXltZW50RXJyb3IJAAACAAAAAQUAAAAZbm90U3VwcG9ydGVkQ3VycmVuY3lFcnJvcgAAAAAnBzmb", "chainId": 84, "height": 667132, "spentComplexity": 0 } View: original | compacted Prev: C2hc99UQQvsSa1kNPUao8NaMtvoJwspCXEYGbq83Lr2v Next: HewXGitJ5cEVswicbNLHoFWDSu7nKJuMUNwQ9YMPk6iC Diff:
OldNewDifferences
176176 }
177177
178178
179+func debug (i,assetId) = {
180+ let callerAddress = toBase58String(i.caller.bytes)
181+ let assetIssuerAdress = getAssetIssuerAddressFromAssetId(assetId)
182+ let result = ((callerAddress + " ") + assetIssuerAdress)
183+ throw(result)
184+ }
185+
186+
179187 @Callable(i)
180188 func updateTicker (assetId,ticker) = {
181189 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
182- let isTickerFree = match getString(tickerCatalogueOracleAddress, ticker) {
183- case t: String =>
184- false
185- case t: Unit =>
186- true
187- case _ =>
188- throw()
189- }
190- if (isPaymentInWaves(i))
191- then if (isEnoughPayment(i, tickerUpdatePrice))
192- then if (isCallerAssetIssuer(i, assetId))
193- then if (isUpdateAllowedByRating(assetId))
194- then if (isTickerFree)
195- then if (isValidTicker(ticker))
196- then WriteSet([DataEntry(issuerTickerKey, ticker)])
197- else throw(tickerValidationWrongFormatError)
198- else throw(tickerValidationTickerIsExistError)
199- else throw(tickerValidationNotEnoughRatingError)
200- else throw(issuerAccessDeniedError)
201- else throw(notEnoughPaymentError)
202- else throw(notSupportedCurrencyError)
190+ debug(i, assetId)
203191 }
204192
205193
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let wvs = 100000000
55
66 let notSupportedCurrencyError = "<notSupportedCurrencyError>"
77
88 let issuerAccessDeniedError = "<issuerAccessDeniedError>"
99
1010 let notEnoughPaymentError = "<notEnoughPaymentError>"
1111
1212 let tickerValidationNotEnoughRatingError = "<tickerValidationNotEnoughRatingError>"
1313
1414 let tickerValidationTickerIsExistError = "<tickerValidationTickerIsExistError>"
1515
1616 let tickerValidationWrongFormatError = "<tickerValidationWrongFormatError>"
1717
1818 let nonExistentAssetError = "<nonExistentAssetError>"
1919
2020 let noPaymentError = "<noPaymentError>"
2121
2222 let descriptionUpdatePrice = (1 * wvs)
2323
2424 let linkUpdatePrice = (1 * wvs)
2525
2626 let tickerUpdatePrice = (2 * wvs)
2727
2828 let tickerMinLength = 1
2929
3030 let tickerMaxLength = 6
3131
3232 let tickerAllowedLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
3333
3434 let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
3535
3636 let tokenRatingOracleAddress = addressFromStringValue("3NADqHoLMbMTfXdP2TeBBSx5mQXePVj3KZm")
3737
3838 func getIntegerFromAccount (accountAddress,key) = match getInteger(accountAddress, key) {
3939 case i: Int =>
4040 i
4141 case _ =>
4242 0
4343 }
4444
4545
4646 func isSubstrExist (str,substr) = match indexOf(str, substr) {
4747 case index: Int =>
4848 true
4949 case index: Unit =>
5050 false
5151 case _ =>
5252 throw()
5353 }
5454
5555
5656 func isValidTicker (ticker) = {
5757 let tickerLetters = split(ticker, "")
5858 let tickerLength = size(tickerLetters)
5959 let isLetter1Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[0])
6060 let isLetter2Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[1])
6161 let isLetter3Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[2])
6262 let isLetter4Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[3])
6363 let isLetter5Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[4])
6464 let isLetter6Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[5])
6565 if ((ticker != ""))
6666 then if (if ((tickerLength >= tickerMinLength))
6767 then (tickerMaxLength >= tickerLength)
6868 else false)
6969 then if ((1 == tickerLength))
7070 then isLetter1Valid
7171 else if ((2 == tickerLength))
7272 then if (isLetter1Valid)
7373 then isLetter2Valid
7474 else false
7575 else if ((3 == tickerLength))
7676 then if (if (isLetter1Valid)
7777 then isLetter2Valid
7878 else false)
7979 then isLetter3Valid
8080 else false
8181 else if ((4 == tickerLength))
8282 then if (if (if (isLetter1Valid)
8383 then isLetter2Valid
8484 else false)
8585 then isLetter3Valid
8686 else false)
8787 then isLetter4Valid
8888 else false
8989 else if ((5 == tickerLength))
9090 then if (if (if (if (isLetter1Valid)
9191 then isLetter2Valid
9292 else false)
9393 then isLetter3Valid
9494 else false)
9595 then isLetter4Valid
9696 else false)
9797 then isLetter5Valid
9898 else false
9999 else if ((6 == tickerLength))
100100 then if (if (if (if (if (isLetter1Valid)
101101 then isLetter2Valid
102102 else false)
103103 then isLetter3Valid
104104 else false)
105105 then isLetter4Valid
106106 else false)
107107 then isLetter5Valid
108108 else false)
109109 then isLetter6Valid
110110 else false
111111 else false
112112 else false
113113 else false
114114 }
115115
116116
117117 func isAssetUpdateAllowedByRating (assetId) = {
118118 let assetRatingKey = (("assetRating_" + assetId) + "_1")
119119 let assetRatingValue = getIntegerFromAccount(tokenRatingOracleAddress, assetRatingKey)
120120 let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerRating_1")
121121 (assetRatingValue >= assetRatingTreshold)
122122 }
123123
124124
125125 func isAssetUpdateAllowedByWeight (assetId) = {
126126 let assetWeightKey = "assetWeight"
127127 let assetWeightValue = getIntegerFromAccount(tokenRatingOracleAddress, assetWeightKey)
128128 let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerWeight")
129129 (assetWeightValue >= assetWeightTreshold)
130130 }
131131
132132
133133 func isAssetUpdateAllowedByVotes (assetId) = {
134134 let assetVotesKey = "assetVotes"
135135 let assetVotesValue = getIntegerFromAccount(tokenRatingOracleAddress, assetVotesKey)
136136 let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerVotes")
137137 (assetVotesValue >= assetVotesTreshold)
138138 }
139139
140140
141141 func isUpdateAllowedByRating (assetId) = if (if (isAssetUpdateAllowedByRating(assetId))
142142 then isAssetUpdateAllowedByWeight(assetId)
143143 else false)
144144 then isAssetUpdateAllowedByVotes(assetId)
145145 else false
146146
147147
148148 func getAssetIssuerAddressFromAssetId (assetId) = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), nonExistentAssetError).issuer)
149149
150150
151151 func getPayment (i) = valueOrErrorMessage(i.payment, noPaymentError)
152152
153153
154154 func isPaymentInWaves (i) = {
155155 let payment = getPayment(i)
156156 if (!(isDefined(payment.assetId)))
157157 then true
158158 else false
159159 }
160160
161161
162162 func isEnoughPayment (i,requiredPayment) = {
163163 let payment = getPayment(i)
164164 if ((payment.amount >= requiredPayment))
165165 then true
166166 else false
167167 }
168168
169169
170170 func isCallerAssetIssuer (i,assetId) = {
171171 let callerAddress = toBase58String(i.caller.bytes)
172172 let assetIssuerAdress = getAssetIssuerAddressFromAssetId(assetId)
173173 if ((callerAddress == assetIssuerAdress))
174174 then true
175175 else false
176176 }
177177
178178
179+func debug (i,assetId) = {
180+ let callerAddress = toBase58String(i.caller.bytes)
181+ let assetIssuerAdress = getAssetIssuerAddressFromAssetId(assetId)
182+ let result = ((callerAddress + " ") + assetIssuerAdress)
183+ throw(result)
184+ }
185+
186+
179187 @Callable(i)
180188 func updateTicker (assetId,ticker) = {
181189 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
182- let isTickerFree = match getString(tickerCatalogueOracleAddress, ticker) {
183- case t: String =>
184- false
185- case t: Unit =>
186- true
187- case _ =>
188- throw()
189- }
190- if (isPaymentInWaves(i))
191- then if (isEnoughPayment(i, tickerUpdatePrice))
192- then if (isCallerAssetIssuer(i, assetId))
193- then if (isUpdateAllowedByRating(assetId))
194- then if (isTickerFree)
195- then if (isValidTicker(ticker))
196- then WriteSet([DataEntry(issuerTickerKey, ticker)])
197- else throw(tickerValidationWrongFormatError)
198- else throw(tickerValidationTickerIsExistError)
199- else throw(tickerValidationNotEnoughRatingError)
200- else throw(issuerAccessDeniedError)
201- else throw(notEnoughPaymentError)
202- else throw(notSupportedCurrencyError)
190+ debug(i, assetId)
203191 }
204192
205193
206194
207195 @Callable(i)
208196 func updateDescription (assetId,description) = {
209197 let issuerDescriptionKey = ((("issuerDescription_" + "<") + assetId) + ">")
210198 if (isPaymentInWaves(i))
211199 then if (isEnoughPayment(i, descriptionUpdatePrice))
212200 then if (isCallerAssetIssuer(i, assetId))
213201 then WriteSet([DataEntry(issuerDescriptionKey, description)])
214202 else throw(issuerAccessDeniedError)
215203 else throw(notEnoughPaymentError)
216204 else throw(notSupportedCurrencyError)
217205 }
218206
219207
220208
221209 @Callable(i)
222210 func updateLink (assetId,link) = {
223211 let issuerLinkKey = ((("issuerLink_" + "<") + assetId) + ">")
224212 if (isPaymentInWaves(i))
225213 then if (isEnoughPayment(i, linkUpdatePrice))
226214 then if (isCallerAssetIssuer(i, assetId))
227215 then WriteSet([DataEntry(issuerLinkKey, link)])
228216 else throw(issuerAccessDeniedError)
229217 else throw(notEnoughPaymentError)
230218 else throw(notSupportedCurrencyError)
231219 }
232220
233221

github/deemru/w8io/873ac7e 
31.47 ms