tx · 4tz8FRfnpt8iJi6FJ17T1XgEeSKZC2bj6sx6ZKrCSZsu

3NAg879tKUJh949h21umkwiaRQhwZftz1BE:  -0.05000000 Waves

2019.09.06 16:41 [664273] smart account 3NAg879tKUJh949h21umkwiaRQhwZftz1BE > SELF 0.00000000 Waves

{ "type": 13, "id": "4tz8FRfnpt8iJi6FJ17T1XgEeSKZC2bj6sx6ZKrCSZsu", "fee": 5000000, "feeAssetId": null, "timestamp": 1567777250761, "version": 1, "sender": "3NAg879tKUJh949h21umkwiaRQhwZftz1BE", "senderPublicKey": "BqY2jhkQCcbidtQdQZu6f9RV3AkFAS8VPToHxwYu1KdJ", "proofs": [ "4LzW2oBkCzafSeqUcs7PTPCMEx3QXi9Xg6EKwrWXTeziCRjFNDCmVfpjk2uthKg2RjCR1j5MKQv1XajPQSYg4EEy" ], "script": "base64:AAIDAAAAAAAAAAAAAAAYAAAAAAN3dnMAAAAAAAX14QAAAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3ICAAAAWTwieyJuYW1lIjogIm5vdFN1cHBvcnRlZEN1cnJlbmN5IiwgIm1lc3NhZ2UiOiAiVGhlIHNlcnZpY2UgY2FuIG9ubHkgYmUgcGFpZCBpbiB3YXZlcy4ifSI+AAAAABdpc3N1ZXJBY2Nlc3NSaWdodHNFcnJvcgIAAABePCJ7Im5hbWUiOiAiaXNzdWVyQWNjZXNzUmlnaHRzIiwgIm1lc3NhZ2UiOiAiT25seSBhc3NldCBpc3N1ZXIgY2FuIGFkZC91cGRhdGUgaW5mb3JtYXRpb24uIn0iPgEAAAAVbm90RW5vdWdoUGF5bWVudEVycm9yAAAAAgAAAAZvcHRpb24AAAAPcmVxdWlyZWRQYXltZW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAASjwieyJuYW1lIjogImlzc3VlckFjY2Vzc1JpZ2h0cyIsICJtZXNzYWdlIjogIk5vdCBlbm91Z2ggcGF5bWVudCBmb3IgQXNzZXQgBQAAAAZvcHRpb24CAAAAIHRpY2tlciB1cGRhdGUgc2VydmljZS4gUmVxdWlyZWQgCQABpAAAAAEFAAAAD3JlcXVpcmVkUGF5bWVudAIAAAALIHdhdmVzLiJ9Ij4AAAAAFmRlc2NyaXB0aW9uVXBkYXRlUHJpY2UJAABoAAAAAgAAAAAAAAAAAQUAAAADd3ZzAAAAAA9saW5rVXBkYXRlUHJpY2UJAABoAAAAAgAAAAAAAAAAAQUAAAADd3ZzAAAAABF0aWNrZXJVcGRhdGVQcmljZQkAAGgAAAACAAAAAAAAAAACBQAAAAN3dnMAAAAAD3RpY2tlck1pbkxlbmd0aAAAAAAAAAAAAQAAAAAPdGlja2VyTWF4TGVuZ3RoAAAAAAAAAAAGAAAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwIAAAAaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoAAAAAHHRpY2tlckNhdGFsb2d1ZU9yYWNsZUFkZHJlc3MJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM014SHhXNVZXcTRLcldjYmhGZnhLcmFmWG00bUw2clpIZmoAAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABAgAAACMzTkFEcUhvTE1iTVRmWGRQMlRlQkJTeDVtUVhlUFZqM0tabQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgAAAA5hY2NvdW50QWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAOYWNjb3VudEFkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFpBQAAAAckbWF0Y2gwBQAAAAFpAAAAAAAAAAAAAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgAAAANzdHIAAAAGc3Vic3RyBAAAAAckbWF0Y2gwCQAEswAAAAIFAAAAA3N0cgUAAAAGc3Vic3RyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABWluZGV4BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFaW5kZXgFAAAAByRtYXRjaDAHCQEAAAAFdGhyb3cAAAAAAQAAAA1pc1ZhbGlkVGlja2VyAAAAAQAAAAZ0aWNrZXIEAAAADXRpY2tlckxldHRlcnMJAAS1AAAAAgUAAAAGdGlja2VyAgAAAAAEAAAADHRpY2tlckxlbmd0aAkAAZAAAAABBQAAAA10aWNrZXJMZXR0ZXJzBAAAAA5pc0xldHRlcjFWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAAABAAAAA5pc0xldHRlcjJWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAABBAAAAA5pc0xldHRlcjNWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAACBAAAAA5pc0xldHRlcjRWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAADBAAAAA5pc0xldHRlcjVWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAAEBAAAAA5pc0xldHRlcjZWYWxpZAkBAAAADWlzU3Vic3RyRXhpc3QAAAACBQAAABR0aWNrZXJBbGxvd2VkTGV0dGVycwkAAZEAAAACBQAAAA10aWNrZXJMZXR0ZXJzAAAAAAAAAAAFAwkBAAAAAiE9AAAAAgUAAAAGdGlja2VyAgAAAAADAwkAAGcAAAACBQAAAAx0aWNrZXJMZW5ndGgFAAAAD3RpY2tlck1pbkxlbmd0aAkAAGcAAAACBQAAAA90aWNrZXJNYXhMZW5ndGgFAAAADHRpY2tlckxlbmd0aAcDCQAAAAAAAAIAAAAAAAAAAAEFAAAADHRpY2tlckxlbmd0aAUAAAAOaXNMZXR0ZXIxVmFsaWQDCQAAAAAAAAIAAAAAAAAAAAIFAAAADHRpY2tlckxlbmd0aAMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAMFAAAADHRpY2tlckxlbmd0aAMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAQFAAAADHRpY2tlckxlbmd0aAMDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHBQAAAA5pc0xldHRlcjRWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAUFAAAADHRpY2tlckxlbmd0aAMDAwMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcFAAAADmlzTGV0dGVyM1ZhbGlkBwUAAAAOaXNMZXR0ZXI0VmFsaWQHBQAAAA5pc0xldHRlcjVWYWxpZAcDCQAAAAAAAAIAAAAAAAAAAAYFAAAADHRpY2tlckxlbmd0aAMDAwMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcFAAAADmlzTGV0dGVyNFZhbGlkBwUAAAAOaXNMZXR0ZXI1VmFsaWQHBQAAAA5pc0xldHRlcjZWYWxpZAcHBwcBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABAAAAB2Fzc2V0SWQEAAAADmFzc2V0UmF0aW5nS2V5CQABLAAAAAIJAAEsAAAAAgIAAAAMYXNzZXRSYXRpbmdfBQAAAAdhc3NldElkAgAAAAJfMQQAAAAQYXNzZXRSYXRpbmdWYWx1ZQkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwUAAAAOYXNzZXRSYXRpbmdLZXkEAAAAE2Fzc2V0UmF0aW5nVHJlc2hvbGQJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MCAAAADnRpY2tlclJhdGluZ18xCQAAZwAAAAIFAAAAEGFzc2V0UmF0aW5nVmFsdWUFAAAAE2Fzc2V0UmF0aW5nVHJlc2hvbGQBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlXZWlnaHQAAAABAAAAB2Fzc2V0SWQEAAAADmFzc2V0V2VpZ2h0S2V5AgAAAAthc3NldFdlaWdodAQAAAAQYXNzZXRXZWlnaHRWYWx1ZQkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwUAAAAOYXNzZXRXZWlnaHRLZXkEAAAAE2Fzc2V0V2VpZ2h0VHJlc2hvbGQJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MCAAAADHRpY2tlcldlaWdodAkAAGcAAAACBQAAABBhc3NldFdlaWdodFZhbHVlBQAAABNhc3NldFdlaWdodFRyZXNob2xkAQAAABtpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5Vm90ZXMAAAABAAAAB2Fzc2V0SWQEAAAADWFzc2V0Vm90ZXNLZXkCAAAACmFzc2V0Vm90ZXMEAAAAD2Fzc2V0Vm90ZXNWYWx1ZQkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwUAAAANYXNzZXRWb3Rlc0tleQQAAAASYXNzZXRWb3Rlc1RyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAAt0aWNrZXJWb3RlcwkAAGcAAAACBQAAAA9hc3NldFZvdGVzVmFsdWUFAAAAEmFzc2V0Vm90ZXNUcmVzaG9sZAEAAAAXaXNVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABAAAAB2Fzc2V0SWQDAwkBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlSYXRpbmcAAAABBQAAAAdhc3NldElkCQEAAAAcaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVdlaWdodAAAAAEFAAAAB2Fzc2V0SWQHCQEAAAAbaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVZvdGVzAAAAAQUAAAAHYXNzZXRJZAcBAAAAIGdldEFzc2V0SXNzdWVyQWRkcmVzc0Zyb21Bc3NldElkAAAAAQAAAAdhc3NldElkCQAEJQAAAAEICQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQkAAlkAAAABBQAAAAdhc3NldElkAgAAACdlcnJvciM2LiB0aGVyZSBpcyBubyBhc3NldCB3aXRoIHN1Y2ggaWQAAAAGaXNzdWVyAQAAAApnZXRQYXltZW50AAAAAQAAAAFpCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAFpAAAAB3BheW1lbnQCAAAAKmVycm9yIzguIHRoZXJlIGlzIG5vIHBheW1lbnQgaW4gaW52b2NhdGlvbgEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEAAAABaQQAAAAHcGF5bWVudAkBAAAACmdldFBheW1lbnQAAAABBQAAAAFpAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAYHAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACAAAAAWkAAAAPcmVxdWlyZWRQYXltZW50BAAAAAdwYXltZW50CQEAAAAKZ2V0UGF5bWVudAAAAAEFAAAAAWkDCQAAZwAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAPcmVxdWlyZWRQYXltZW50BgcBAAAAE2lzQ2FsbGVyQXNzZXRJc3N1ZXIAAAACAAAAAWkAAAAHYXNzZXRJZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFhc3NldElzc3VlckFkcmVzcwkBAAAAIGdldEFzc2V0SXNzdWVyQWRkcmVzc0Zyb21Bc3NldElkAAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAARYXNzZXRJc3N1ZXJBZHJlc3MGBwAAAAMAAAABaQEAAAAMdXBkYXRlVGlja2VyAAAAAgAAAAdhc3NldElkAAAABnRpY2tlcgQAAAAPaXNzdWVyVGlja2VyS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA1pc3N1ZXJUaWNrZXJfAgAAAAE8BQAAAAdhc3NldElkAgAAAAE+BAAAAAxpc1RpY2tlckZyZWUEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAcdGlja2VyQ2F0YWxvZ3VlT3JhY2xlQWRkcmVzcwUAAAAGdGlja2VyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAF0BQAAAAckbWF0Y2gwBgkBAAAABXRocm93AAAAAAMJAQAAABBpc1BheW1lbnRJbldhdmVzAAAAAQUAAAABaQMJAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACBQAAAAFpBQAAABF0aWNrZXJVcGRhdGVQcmljZQMJAQAAABNpc0NhbGxlckFzc2V0SXNzdWVyAAAAAgUAAAABaQUAAAAHYXNzZXRJZAMJAQAAABdpc1VwZGF0ZUFsbG93ZWRCeVJhdGluZwAAAAEFAAAAB2Fzc2V0SWQDBQAAAAxpc1RpY2tlckZyZWUDCQEAAAANaXNWYWxpZFRpY2tlcgAAAAEFAAAABnRpY2tlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPaXNzdWVyVGlja2VyS2V5BQAAAAZ0aWNrZXIFAAAAA25pbAkAAAIAAAABAgAAAD9lcnJvciM1LiBUaWNrZXIgc2hvdWxkIGNvbnNpc3Qgb2YgMS02IGNhcGl0YWwgTGF0aW4gY2hhcmFjdGVycy4JAAACAAAAAQIAAAAwZXJyb3IjNC4gQXNzZXQgd2l0aCBzdWNoIHRpY2tlciBpcyBhbHJlYWR5IGV4aXN0CQAAAgAAAAECAAAAGmVycm9yIzMuIFRvbyBsaXR0bGUgcmF0aW5nCQAAAgAAAAEFAAAAF2lzc3VlckFjY2Vzc1JpZ2h0c0Vycm9yCQAAAgAAAAECAAAAPmVycm9yIzIuIEluc3VmZmljaWVudCBwYXltZW50IGZvciBhc3NldCB0aWNrZXIgdXBkYXRlIHNlcnZpY2UuCQAAAgAAAAEFAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3IAAAABaQEAAAARdXBkYXRlRGVzY3JpcHRpb24AAAACAAAAB2Fzc2V0SWQAAAALZGVzY3JpcHRpb24EAAAAFGlzc3VlckRlc2NyaXB0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJpc3N1ZXJEZXNjcmlwdGlvbl8CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4DCQEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEFAAAAAWkDCQEAAAAPaXNFbm91Z2hQYXltZW50AAAAAgUAAAABaQUAAAAWZGVzY3JpcHRpb25VcGRhdGVQcmljZQMJAQAAABNpc0NhbGxlckFzc2V0SXNzdWVyAAAAAgUAAAABaQUAAAAHYXNzZXRJZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAUaXNzdWVyRGVzY3JpcHRpb25LZXkFAAAAC2Rlc2NyaXB0aW9uBQAAAANuaWwJAAACAAAAAQUAAAAXaXNzdWVyQWNjZXNzUmlnaHRzRXJyb3IJAAACAAAAAQIAAABDZXJyb3IjNy4gSW5zdWZmaWNpZW50IHBheW1lbnQgZm9yIGFzc2V0IGRlc2NyaXB0aW9uIHVwZGF0ZSBzZXJ2aWNlLgkAAAIAAAABBQAAABlub3RTdXBwb3J0ZWRDdXJyZW5jeUVycm9yAAAAAWkBAAAACnVwZGF0ZUxpbmsAAAACAAAAB2Fzc2V0SWQAAAAEbGluawQAAAANaXNzdWVyTGlua0tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALaXNzdWVyTGlua18CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4DCQEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEFAAAAAWkDCQEAAAAPaXNFbm91Z2hQYXltZW50AAAAAgUAAAABaQUAAAAPbGlua1VwZGF0ZVByaWNlAwkBAAAAE2lzQ2FsbGVyQXNzZXRJc3N1ZXIAAAACBQAAAAFpBQAAAAdhc3NldElkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA1pc3N1ZXJMaW5rS2V5BQAAAARsaW5rBQAAAANuaWwJAAACAAAAAQUAAAAXaXNzdWVyQWNjZXNzUmlnaHRzRXJyb3IJAAACAAAAAQIAAAA8ZXJyb3IjNy4gSW5zdWZmaWNpZW50IHBheW1lbnQgZm9yIGFzc2V0IGxpbmsgdXBkYXRlIHNlcnZpY2UuCQAAAgAAAAEFAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3IAAAAAnLSqGA==", "chainId": 84, "height": 664273, "spentComplexity": 0 } View: original | compacted Prev: EZjB6DCz1pJEvRdqxNbLghdv1RAKr7R5EjwkC5Dcntrm Next: C2hc99UQQvsSa1kNPUao8NaMtvoJwspCXEYGbq83Lr2v Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let wvs = 100000000
55
66 let notSupportedCurrencyError = "<\"{\"name\": \"notSupportedCurrency\", \"message\": \"The service can only be paid in waves.\"}\">"
77
88 let issuerAccessRightsError = "<\"{\"name\": \"issuerAccessRights\", \"message\": \"Only asset issuer can add/update information.\"}\">"
99
1010 func notEnoughPaymentError (option,requiredPayment) = (((("<\"{\"name\": \"issuerAccessRights\", \"message\": \"Not enough payment for Asset " + option) + "ticker update service. Required ") + toString(requiredPayment)) + " waves.\"}\">")
1111
1212
1313 let descriptionUpdatePrice = (1 * wvs)
1414
1515 let linkUpdatePrice = (1 * wvs)
1616
1717 let tickerUpdatePrice = (2 * wvs)
1818
1919 let tickerMinLength = 1
2020
2121 let tickerMaxLength = 6
2222
2323 let tickerAllowedLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
2424
2525 let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
2626
2727 let tokenRatingOracleAddress = addressFromStringValue("3NADqHoLMbMTfXdP2TeBBSx5mQXePVj3KZm")
2828
2929 func getIntegerFromAccount (accountAddress,key) = match getInteger(accountAddress, key) {
3030 case i: Int =>
3131 i
3232 case _ =>
3333 0
3434 }
3535
3636
3737 func isSubstrExist (str,substr) = match indexOf(str, substr) {
3838 case index: Int =>
3939 true
4040 case index: Unit =>
4141 false
4242 case _ =>
4343 throw()
4444 }
4545
4646
4747 func isValidTicker (ticker) = {
4848 let tickerLetters = split(ticker, "")
4949 let tickerLength = size(tickerLetters)
5050 let isLetter1Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[0])
5151 let isLetter2Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[1])
5252 let isLetter3Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[2])
5353 let isLetter4Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[3])
5454 let isLetter5Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[4])
5555 let isLetter6Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[5])
5656 if ((ticker != ""))
5757 then if (if ((tickerLength >= tickerMinLength))
5858 then (tickerMaxLength >= tickerLength)
5959 else false)
6060 then if ((1 == tickerLength))
6161 then isLetter1Valid
6262 else if ((2 == tickerLength))
6363 then if (isLetter1Valid)
6464 then isLetter2Valid
6565 else false
6666 else if ((3 == tickerLength))
6767 then if (if (isLetter1Valid)
6868 then isLetter2Valid
6969 else false)
7070 then isLetter3Valid
7171 else false
7272 else if ((4 == tickerLength))
7373 then if (if (if (isLetter1Valid)
7474 then isLetter2Valid
7575 else false)
7676 then isLetter3Valid
7777 else false)
7878 then isLetter4Valid
7979 else false
8080 else if ((5 == tickerLength))
8181 then if (if (if (if (isLetter1Valid)
8282 then isLetter2Valid
8383 else false)
8484 then isLetter3Valid
8585 else false)
8686 then isLetter4Valid
8787 else false)
8888 then isLetter5Valid
8989 else false
9090 else if ((6 == tickerLength))
9191 then if (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 then isLetter6Valid
101101 else false
102102 else false
103103 else false
104104 else false
105105 }
106106
107107
108108 func isAssetUpdateAllowedByRating (assetId) = {
109109 let assetRatingKey = (("assetRating_" + assetId) + "_1")
110110 let assetRatingValue = getIntegerFromAccount(tokenRatingOracleAddress, assetRatingKey)
111111 let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerRating_1")
112112 (assetRatingValue >= assetRatingTreshold)
113113 }
114114
115115
116116 func isAssetUpdateAllowedByWeight (assetId) = {
117117 let assetWeightKey = "assetWeight"
118118 let assetWeightValue = getIntegerFromAccount(tokenRatingOracleAddress, assetWeightKey)
119119 let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerWeight")
120120 (assetWeightValue >= assetWeightTreshold)
121121 }
122122
123123
124124 func isAssetUpdateAllowedByVotes (assetId) = {
125125 let assetVotesKey = "assetVotes"
126126 let assetVotesValue = getIntegerFromAccount(tokenRatingOracleAddress, assetVotesKey)
127127 let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerVotes")
128128 (assetVotesValue >= assetVotesTreshold)
129129 }
130130
131131
132132 func isUpdateAllowedByRating (assetId) = if (if (isAssetUpdateAllowedByRating(assetId))
133133 then isAssetUpdateAllowedByWeight(assetId)
134134 else false)
135135 then isAssetUpdateAllowedByVotes(assetId)
136136 else false
137137
138138
139139 func getAssetIssuerAddressFromAssetId (assetId) = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "error#6. there is no asset with such id").issuer)
140140
141141
142142 func getPayment (i) = valueOrErrorMessage(i.payment, "error#8. there is no payment in invocation")
143143
144144
145145 func isPaymentInWaves (i) = {
146146 let payment = getPayment(i)
147147 if (!(isDefined(payment.assetId)))
148148 then true
149149 else false
150150 }
151151
152152
153153 func isEnoughPayment (i,requiredPayment) = {
154154 let payment = getPayment(i)
155155 if ((payment.amount >= requiredPayment))
156156 then true
157157 else false
158158 }
159159
160160
161161 func isCallerAssetIssuer (i,assetId) = {
162162 let callerAddress = toBase58String(i.caller.bytes)
163163 let assetIssuerAdress = getAssetIssuerAddressFromAssetId(assetId)
164164 if ((callerAddress == assetIssuerAdress))
165165 then true
166166 else false
167167 }
168168
169169
170170 @Callable(i)
171171 func updateTicker (assetId,ticker) = {
172172 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
173173 let isTickerFree = match getString(tickerCatalogueOracleAddress, ticker) {
174174 case t: String =>
175175 false
176176 case t: Unit =>
177177 true
178178 case _ =>
179179 throw()
180180 }
181181 if (isPaymentInWaves(i))
182182 then if (isEnoughPayment(i, tickerUpdatePrice))
183183 then if (isCallerAssetIssuer(i, assetId))
184184 then if (isUpdateAllowedByRating(assetId))
185185 then if (isTickerFree)
186186 then if (isValidTicker(ticker))
187187 then WriteSet([DataEntry(issuerTickerKey, ticker)])
188188 else throw("error#5. Ticker should consist of 1-6 capital Latin characters.")
189189 else throw("error#4. Asset with such ticker is already exist")
190190 else throw("error#3. Too little rating")
191191 else throw(issuerAccessRightsError)
192192 else throw("error#2. Insufficient payment for asset ticker update service.")
193193 else throw(notSupportedCurrencyError)
194194 }
195195
196196
197197
198198 @Callable(i)
199199 func updateDescription (assetId,description) = {
200200 let issuerDescriptionKey = ((("issuerDescription_" + "<") + assetId) + ">")
201201 if (isPaymentInWaves(i))
202202 then if (isEnoughPayment(i, descriptionUpdatePrice))
203203 then if (isCallerAssetIssuer(i, assetId))
204204 then WriteSet([DataEntry(issuerDescriptionKey, description)])
205205 else throw(issuerAccessRightsError)
206206 else throw("error#7. Insufficient payment for asset description update service.")
207207 else throw(notSupportedCurrencyError)
208208 }
209209
210210
211211
212212 @Callable(i)
213213 func updateLink (assetId,link) = {
214214 let issuerLinkKey = ((("issuerLink_" + "<") + assetId) + ">")
215215 if (isPaymentInWaves(i))
216216 then if (isEnoughPayment(i, linkUpdatePrice))
217217 then if (isCallerAssetIssuer(i, assetId))
218218 then WriteSet([DataEntry(issuerLinkKey, link)])
219219 else throw(issuerAccessRightsError)
220220 else throw("error#7. Insufficient payment for asset link update service.")
221221 else throw(notSupportedCurrencyError)
222222 }
223223
224224

github/deemru/w8io/873ac7e 
39.76 ms