tx · 51rt5Na5JH8q9UaMLP2gzvzbR2v4nFxWucTbJA8Dmbt5

3NAg879tKUJh949h21umkwiaRQhwZftz1BE:  -0.05000000 Waves

2019.09.09 09:23 [668178] smart account 3NAg879tKUJh949h21umkwiaRQhwZftz1BE > SELF 0.00000000 Waves

{ "type": 13, "id": "51rt5Na5JH8q9UaMLP2gzvzbR2v4nFxWucTbJA8Dmbt5", "fee": 5000000, "feeAssetId": null, "timestamp": 1568010269111, "version": 1, "sender": "3NAg879tKUJh949h21umkwiaRQhwZftz1BE", "senderPublicKey": "BqY2jhkQCcbidtQdQZu6f9RV3AkFAS8VPToHxwYu1KdJ", "proofs": [ "xHvLN7a2t1ko88BPBVwcqHevLRMZ3hgZBQcXBUJaUCKyF3N4ED3wiC6y62JrG9Hm8cWztHPBuQW7yjVpvwcv6LE" ], "script": "base64:AAIDAAAAAAAAAAAAAAAeAAAAABlub3RTdXBwb3J0ZWRDdXJyZW5jeUVycm9yAgAAABs8bm90U3VwcG9ydGVkQ3VycmVuY3lFcnJvcj4AAAAAF2lzc3VlckFjY2Vzc0RlbmllZEVycm9yAgAAABk8aXNzdWVyQWNjZXNzRGVuaWVkRXJyb3I+AAAAABVub3RFbm91Z2hQYXltZW50RXJyb3ICAAAAFzxub3RFbm91Z2hQYXltZW50RXJyb3I+AAAAACR0aWNrZXJWYWxpZGF0aW9uTm90RW5vdWdoUmF0aW5nRXJyb3ICAAAAJjx0aWNrZXJWYWxpZGF0aW9uTm90RW5vdWdoUmF0aW5nRXJyb3I+AAAAACJ0aWNrZXJWYWxpZGF0aW9uVGlja2VySXNFeGlzdEVycm9yAgAAACQ8dGlja2VyVmFsaWRhdGlvblRpY2tlcklzRXhpc3RFcnJvcj4AAAAAIHRpY2tlclZhbGlkYXRpb25Xcm9uZ0Zvcm1hdEVycm9yAgAAACI8dGlja2VyVmFsaWRhdGlvbldyb25nRm9ybWF0RXJyb3I+AAAAABVub25FeGlzdGVudEFzc2V0RXJyb3ICAAAAFzxub25FeGlzdGVudEFzc2V0RXJyb3I+AAAAAA5ub1BheW1lbnRFcnJvcgIAAAAQPG5vUGF5bWVudEVycm9yPgAAAAADd3ZzAAAAAAAF9eEAAAAAABZkZXNjcmlwdGlvblVwZGF0ZVByaWNlCQAAaAAAAAIAAAAAAAAAAAEFAAAAA3d2cwAAAAAPbGlua1VwZGF0ZVByaWNlCQAAaAAAAAIAAAAAAAAAAAEFAAAAA3d2cwAAAAARdGlja2VyVXBkYXRlUHJpY2UJAABoAAAAAgAAAAAAAAAAAgUAAAADd3ZzAAAAAA90aWNrZXJNaW5MZW5ndGgAAAAAAAAAAAEAAAAAD3RpY2tlck1heExlbmd0aAAAAAAAAAAABgAAAAAUdGlja2VyQWxsb3dlZExldHRlcnMCAAAAGkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaAAAAAA9yZXNlcnZlZFRpY2tlcnMCAAABJUJUQyxFVEgsWFJQLEJDSCxMVEMsQk5CLFVTRFQsRU9TLEJTVixYTVIsWExNLExFTyxBREEsVFJYLERBU0gsTElOSyxYVFosTkVPLE1JT1RBLEVUQyxBVE9NLFhFTSxNS1IsQ1JPLFVTREMsT05ULFZTWVMsWkVDLERPR0UsVkVULERDUixIVCxCQVQsQlRHLFFUVU0sSEVERyxUVVNELFBBWCxFR1QsT01HLEFMR08sS0NTLFJWTixMU0ssTkFOTyxCVFQsQkNELE5SRyxMQU1CLEhPVCxCQ04sREdCLFJFUCxCVFMsWlJYLFhJTixBT0EsSU9TVCxJQ1gsTkVULEdOVCxQUFQsUkhPQyxTTlQsQUUsV1RDLFZFUkksUixaSUwsQk5UAAAAABx0aWNrZXJDYXRhbG9ndWVPcmFjbGVBZGRyZXNzCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNNeEh4VzVWV3E0S3JXY2JoRmZ4S3JhZlhtNG1MNnJaSGZqAAAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQIAAAAjM05BRHFIb0xNYk1UZlhkUDJUZUJCU3g1bVFYZVBWajNLWm0BAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAADmFjY291bnRBZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABaQUAAAAHJG1hdGNoMAUAAAABaQAAAAAAAAAAAAEAAAANaXNTdWJzdHJFeGlzdAAAAAIAAAADc3RyAAAABnN1YnN0cgQAAAAHJG1hdGNoMAkABLMAAAACBQAAAANzdHIFAAAABnN1YnN0cgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAVpbmRleAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABWluZGV4BQAAAAckbWF0Y2gwBwkBAAAABXRocm93AAAAAAEAAAANaXNWYWxpZFRpY2tlcgAAAAEAAAAGdGlja2VyBAAAAA10aWNrZXJMZXR0ZXJzCQAEtQAAAAIFAAAABnRpY2tlcgIAAAAABAAAAAx0aWNrZXJMZW5ndGgJAAGQAAAAAQUAAAANdGlja2VyTGV0dGVycwQAAAAOaXNMZXR0ZXIxVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAAQAAAAOaXNMZXR0ZXIyVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAQQAAAAOaXNMZXR0ZXIzVmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAgQAAAAOaXNMZXR0ZXI0VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAAAwQAAAAOaXNMZXR0ZXI1VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAABAQAAAAOaXNMZXR0ZXI2VmFsaWQJAQAAAA1pc1N1YnN0ckV4aXN0AAAAAgUAAAAUdGlja2VyQWxsb3dlZExldHRlcnMJAAGRAAAAAgUAAAANdGlja2VyTGV0dGVycwAAAAAAAAAABQMJAQAAAAIhPQAAAAIFAAAABnRpY2tlcgIAAAAAAwMJAABnAAAAAgUAAAAMdGlja2VyTGVuZ3RoBQAAAA90aWNrZXJNaW5MZW5ndGgJAABnAAAAAgUAAAAPdGlja2VyTWF4TGVuZ3RoBQAAAAx0aWNrZXJMZW5ndGgHAwkAAAAAAAACAAAAAAAAAAABBQAAAAx0aWNrZXJMZW5ndGgFAAAADmlzTGV0dGVyMVZhbGlkAwkAAAAAAAACAAAAAAAAAAACBQAAAAx0aWNrZXJMZW5ndGgDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHAwkAAAAAAAACAAAAAAAAAAADBQAAAAx0aWNrZXJMZW5ndGgDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHAwkAAAAAAAACAAAAAAAAAAAEBQAAAAx0aWNrZXJMZW5ndGgDAwMFAAAADmlzTGV0dGVyMVZhbGlkBQAAAA5pc0xldHRlcjJWYWxpZAcFAAAADmlzTGV0dGVyM1ZhbGlkBwUAAAAOaXNMZXR0ZXI0VmFsaWQHAwkAAAAAAAACAAAAAAAAAAAFBQAAAAx0aWNrZXJMZW5ndGgDAwMDBQAAAA5pc0xldHRlcjFWYWxpZAUAAAAOaXNMZXR0ZXIyVmFsaWQHBQAAAA5pc0xldHRlcjNWYWxpZAcFAAAADmlzTGV0dGVyNFZhbGlkBwUAAAAOaXNMZXR0ZXI1VmFsaWQHAwkAAAAAAAACAAAAAAAAAAAGBQAAAAx0aWNrZXJMZW5ndGgDAwMDAwUAAAAOaXNMZXR0ZXIxVmFsaWQFAAAADmlzTGV0dGVyMlZhbGlkBwUAAAAOaXNMZXR0ZXIzVmFsaWQHBQAAAA5pc0xldHRlcjRWYWxpZAcFAAAADmlzTGV0dGVyNVZhbGlkBwUAAAAOaXNMZXR0ZXI2VmFsaWQHBwcHAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQAAAAdhc3NldElkBAAAAA5hc3NldFJhdGluZ0tleQkAASwAAAACCQABLAAAAAICAAAADGFzc2V0UmF0aW5nXwUAAAAHYXNzZXRJZAIAAAACXzEEAAAAEGFzc2V0UmF0aW5nVmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADmFzc2V0UmF0aW5nS2V5BAAAABNhc3NldFJhdGluZ1RyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAA50aWNrZXJSYXRpbmdfMQkAAGcAAAACBQAAABBhc3NldFJhdGluZ1ZhbHVlBQAAABNhc3NldFJhdGluZ1RyZXNob2xkAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5V2VpZ2h0AAAAAQAAAAdhc3NldElkBAAAAA5hc3NldFdlaWdodEtleQIAAAALYXNzZXRXZWlnaHQEAAAAEGFzc2V0V2VpZ2h0VmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADmFzc2V0V2VpZ2h0S2V5BAAAABNhc3NldFdlaWdodFRyZXNob2xkCQEAAAAVZ2V0SW50ZWdlckZyb21BY2NvdW50AAAAAgUAAAAYdG9rZW5SYXRpbmdPcmFjbGVBZGRyZXNzAgAAAAx0aWNrZXJXZWlnaHQJAABnAAAAAgUAAAAQYXNzZXRXZWlnaHRWYWx1ZQUAAAATYXNzZXRXZWlnaHRUcmVzaG9sZAEAAAAbaXNBc3NldFVwZGF0ZUFsbG93ZWRCeVZvdGVzAAAAAQAAAAdhc3NldElkBAAAAA1hc3NldFZvdGVzS2V5AgAAAAphc3NldFZvdGVzBAAAAA9hc3NldFZvdGVzVmFsdWUJAQAAABVnZXRJbnRlZ2VyRnJvbUFjY291bnQAAAACBQAAABh0b2tlblJhdGluZ09yYWNsZUFkZHJlc3MFAAAADWFzc2V0Vm90ZXNLZXkEAAAAEmFzc2V0Vm90ZXNUcmVzaG9sZAkBAAAAFWdldEludGVnZXJGcm9tQWNjb3VudAAAAAIFAAAAGHRva2VuUmF0aW5nT3JhY2xlQWRkcmVzcwIAAAALdGlja2VyVm90ZXMJAABnAAAAAgUAAAAPYXNzZXRWb3Rlc1ZhbHVlBQAAABJhc3NldFZvdGVzVHJlc2hvbGQBAAAAF2lzVXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQAAAAdhc3NldElkAwMJAQAAABxpc0Fzc2V0VXBkYXRlQWxsb3dlZEJ5UmF0aW5nAAAAAQUAAAAHYXNzZXRJZAkBAAAAHGlzQXNzZXRVcGRhdGVBbGxvd2VkQnlXZWlnaHQAAAABBQAAAAdhc3NldElkBwkBAAAAG2lzQXNzZXRVcGRhdGVBbGxvd2VkQnlWb3RlcwAAAAEFAAAAB2Fzc2V0SWQHAQAAACBnZXRBc3NldElzc3VlckFkZHJlc3NGcm9tQXNzZXRJZAAAAAEAAAAHYXNzZXRJZAkABCUAAAABCAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEJAAJZAAAAAQUAAAAHYXNzZXRJZAUAAAAVbm9uRXhpc3RlbnRBc3NldEVycm9yAAAABmlzc3VlcgEAAAAKZ2V0UGF5bWVudAAAAAEAAAABaQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCAUAAAABaQAAAAdwYXltZW50BQAAAA5ub1BheW1lbnRFcnJvcgEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEAAAABaQQAAAAHcGF5bWVudAkBAAAACmdldFBheW1lbnQAAAABBQAAAAFpAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAYHAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACAAAAAWkAAAAPcmVxdWlyZWRQYXltZW50BAAAAAdwYXltZW50CQEAAAAKZ2V0UGF5bWVudAAAAAEFAAAAAWkDCQAAZwAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAPcmVxdWlyZWRQYXltZW50BgcBAAAAE2lzQ2FsbGVyQXNzZXRJc3N1ZXIAAAACAAAAAWkAAAAHYXNzZXRJZAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABFhc3NldElzc3VlckFkcmVzcwkBAAAAIGdldEFzc2V0SXNzdWVyQWRkcmVzc0Zyb21Bc3NldElkAAAAAQUAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAARYXNzZXRJc3N1ZXJBZHJlc3MGBwAAAAMAAAABaQEAAAAMdXBkYXRlVGlja2VyAAAAAgAAAAdhc3NldElkAAAABnRpY2tlcgQAAAAPaXNzdWVyVGlja2VyS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA1pc3N1ZXJUaWNrZXJfAgAAAAE8BQAAAAdhc3NldElkAgAAAAE+BAAAABBpc1RpY2tlclJlc2VydmVkCQEAAAANaXNTdWJzdHJFeGlzdAAAAAIFAAAAD3Jlc2VydmVkVGlja2VycwUAAAAGdGlja2VyBAAAAAxpc1RpY2tlckZyZWUEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAcdGlja2VyQ2F0YWxvZ3VlT3JhY2xlQWRkcmVzcwUAAAAGdGlja2VyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXQFAAAAByRtYXRjaDAHAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BAAAAAF0BQAAAAckbWF0Y2gwBgkBAAAABXRocm93AAAAAAMJAQAAABBpc1BheW1lbnRJbldhdmVzAAAAAQUAAAABaQMJAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACBQAAAAFpBQAAABF0aWNrZXJVcGRhdGVQcmljZQMJAQAAABNpc0NhbGxlckFzc2V0SXNzdWVyAAAAAgUAAAABaQUAAAAHYXNzZXRJZAMJAQAAABdpc1VwZGF0ZUFsbG93ZWRCeVJhdGluZwAAAAEFAAAAB2Fzc2V0SWQDAwUAAAAMaXNUaWNrZXJGcmVlCQEAAAABIQAAAAEFAAAAEGlzVGlja2VyUmVzZXJ2ZWQHAwkBAAAADWlzVmFsaWRUaWNrZXIAAAABBQAAAAZ0aWNrZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD2lzc3VlclRpY2tlcktleQUAAAAGdGlja2VyBQAAAANuaWwJAAACAAAAAQUAAAAgdGlja2VyVmFsaWRhdGlvbldyb25nRm9ybWF0RXJyb3IJAAACAAAAAQUAAAAidGlja2VyVmFsaWRhdGlvblRpY2tlcklzRXhpc3RFcnJvcgkAAAIAAAABBQAAACR0aWNrZXJWYWxpZGF0aW9uTm90RW5vdWdoUmF0aW5nRXJyb3IJAAACAAAAAQUAAAAXaXNzdWVyQWNjZXNzRGVuaWVkRXJyb3IJAAACAAAAAQUAAAAVbm90RW5vdWdoUGF5bWVudEVycm9yCQAAAgAAAAEFAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3IAAAABaQEAAAARdXBkYXRlRGVzY3JpcHRpb24AAAACAAAAB2Fzc2V0SWQAAAALZGVzY3JpcHRpb24EAAAAFGlzc3VlckRlc2NyaXB0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJpc3N1ZXJEZXNjcmlwdGlvbl8CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4DCQEAAAAQaXNQYXltZW50SW5XYXZlcwAAAAEFAAAAAWkDCQEAAAAPaXNFbm91Z2hQYXltZW50AAAAAgUAAAABaQUAAAAWZGVzY3JpcHRpb25VcGRhdGVQcmljZQMJAQAAABNpc0NhbGxlckFzc2V0SXNzdWVyAAAAAgUAAAABaQUAAAAHYXNzZXRJZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAUaXNzdWVyRGVzY3JpcHRpb25LZXkFAAAAC2Rlc2NyaXB0aW9uBQAAAANuaWwJAAACAAAAAQUAAAAXaXNzdWVyQWNjZXNzRGVuaWVkRXJyb3IJAAACAAAAAQUAAAAVbm90RW5vdWdoUGF5bWVudEVycm9yCQAAAgAAAAEFAAAAGW5vdFN1cHBvcnRlZEN1cnJlbmN5RXJyb3IAAAABaQEAAAAKdXBkYXRlTGluawAAAAIAAAAHYXNzZXRJZAAAAARsaW5rBAAAAA1pc3N1ZXJMaW5rS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtpc3N1ZXJMaW5rXwIAAAABPAUAAAAHYXNzZXRJZAIAAAABPgMJAQAAABBpc1BheW1lbnRJbldhdmVzAAAAAQUAAAABaQMJAQAAAA9pc0Vub3VnaFBheW1lbnQAAAACBQAAAAFpBQAAAA9saW5rVXBkYXRlUHJpY2UDCQEAAAATaXNDYWxsZXJBc3NldElzc3VlcgAAAAIFAAAAAWkFAAAAB2Fzc2V0SWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADWlzc3VlckxpbmtLZXkFAAAABGxpbmsFAAAAA25pbAkAAAIAAAABBQAAABdpc3N1ZXJBY2Nlc3NEZW5pZWRFcnJvcgkAAAIAAAABBQAAABVub3RFbm91Z2hQYXltZW50RXJyb3IJAAACAAAAAQUAAAAZbm90U3VwcG9ydGVkQ3VycmVuY3lFcnJvcgAAAAA+tSWC", "chainId": 84, "height": 668178, "spentComplexity": 0 } View: original | compacted Prev: 88XNecS8Q7qnDkoPt9EdUPgPJ4HhMAGqYP9TD8zBm5QM Next: 4WCH7wZ4BbWfCrh742AVqH1pacZRF5aMYEWby1MeCVgx Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let wvs = 100000000
5-
64 let notSupportedCurrencyError = "<notSupportedCurrencyError>"
75
86 let issuerAccessDeniedError = "<issuerAccessDeniedError>"
1816 let nonExistentAssetError = "<nonExistentAssetError>"
1917
2018 let noPaymentError = "<noPaymentError>"
19+
20+let wvs = 100000000
2121
2222 let descriptionUpdatePrice = (1 * wvs)
2323
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let wvs = 100000000
5-
64 let notSupportedCurrencyError = "<notSupportedCurrencyError>"
75
86 let issuerAccessDeniedError = "<issuerAccessDeniedError>"
97
108 let notEnoughPaymentError = "<notEnoughPaymentError>"
119
1210 let tickerValidationNotEnoughRatingError = "<tickerValidationNotEnoughRatingError>"
1311
1412 let tickerValidationTickerIsExistError = "<tickerValidationTickerIsExistError>"
1513
1614 let tickerValidationWrongFormatError = "<tickerValidationWrongFormatError>"
1715
1816 let nonExistentAssetError = "<nonExistentAssetError>"
1917
2018 let noPaymentError = "<noPaymentError>"
19+
20+let wvs = 100000000
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 reservedTickers = "BTC,ETH,XRP,BCH,LTC,BNB,USDT,EOS,BSV,XMR,XLM,LEO,ADA,TRX,DASH,LINK,XTZ,NEO,MIOTA,ETC,ATOM,XEM,MKR,CRO,USDC,ONT,VSYS,ZEC,DOGE,VET,DCR,HT,BAT,BTG,QTUM,HEDG,TUSD,PAX,EGT,OMG,ALGO,KCS,RVN,LSK,NANO,BTT,BCD,NRG,LAMB,HOT,BCN,DGB,REP,BTS,ZRX,XIN,AOA,IOST,ICX,NET,GNT,PPT,RHOC,SNT,AE,WTC,VERI,R,ZIL,BNT"
3535
3636 let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
3737
3838 let tokenRatingOracleAddress = addressFromStringValue("3NADqHoLMbMTfXdP2TeBBSx5mQXePVj3KZm")
3939
4040 func getIntegerFromAccount (accountAddress,key) = match getInteger(accountAddress, key) {
4141 case i: Int =>
4242 i
4343 case _ =>
4444 0
4545 }
4646
4747
4848 func isSubstrExist (str,substr) = match indexOf(str, substr) {
4949 case index: Int =>
5050 true
5151 case index: Unit =>
5252 false
5353 case _ =>
5454 throw()
5555 }
5656
5757
5858 func isValidTicker (ticker) = {
5959 let tickerLetters = split(ticker, "")
6060 let tickerLength = size(tickerLetters)
6161 let isLetter1Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[0])
6262 let isLetter2Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[1])
6363 let isLetter3Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[2])
6464 let isLetter4Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[3])
6565 let isLetter5Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[4])
6666 let isLetter6Valid = isSubstrExist(tickerAllowedLetters, tickerLetters[5])
6767 if ((ticker != ""))
6868 then if (if ((tickerLength >= tickerMinLength))
6969 then (tickerMaxLength >= tickerLength)
7070 else false)
7171 then if ((1 == tickerLength))
7272 then isLetter1Valid
7373 else if ((2 == tickerLength))
7474 then if (isLetter1Valid)
7575 then isLetter2Valid
7676 else false
7777 else if ((3 == tickerLength))
7878 then if (if (isLetter1Valid)
7979 then isLetter2Valid
8080 else false)
8181 then isLetter3Valid
8282 else false
8383 else if ((4 == tickerLength))
8484 then if (if (if (isLetter1Valid)
8585 then isLetter2Valid
8686 else false)
8787 then isLetter3Valid
8888 else false)
8989 then isLetter4Valid
9090 else false
9191 else if ((5 == tickerLength))
9292 then if (if (if (if (isLetter1Valid)
9393 then isLetter2Valid
9494 else false)
9595 then isLetter3Valid
9696 else false)
9797 then isLetter4Valid
9898 else false)
9999 then isLetter5Valid
100100 else false
101101 else if ((6 == tickerLength))
102102 then if (if (if (if (if (isLetter1Valid)
103103 then isLetter2Valid
104104 else false)
105105 then isLetter3Valid
106106 else false)
107107 then isLetter4Valid
108108 else false)
109109 then isLetter5Valid
110110 else false)
111111 then isLetter6Valid
112112 else false
113113 else false
114114 else false
115115 else false
116116 }
117117
118118
119119 func isAssetUpdateAllowedByRating (assetId) = {
120120 let assetRatingKey = (("assetRating_" + assetId) + "_1")
121121 let assetRatingValue = getIntegerFromAccount(tokenRatingOracleAddress, assetRatingKey)
122122 let assetRatingTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerRating_1")
123123 (assetRatingValue >= assetRatingTreshold)
124124 }
125125
126126
127127 func isAssetUpdateAllowedByWeight (assetId) = {
128128 let assetWeightKey = "assetWeight"
129129 let assetWeightValue = getIntegerFromAccount(tokenRatingOracleAddress, assetWeightKey)
130130 let assetWeightTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerWeight")
131131 (assetWeightValue >= assetWeightTreshold)
132132 }
133133
134134
135135 func isAssetUpdateAllowedByVotes (assetId) = {
136136 let assetVotesKey = "assetVotes"
137137 let assetVotesValue = getIntegerFromAccount(tokenRatingOracleAddress, assetVotesKey)
138138 let assetVotesTreshold = getIntegerFromAccount(tokenRatingOracleAddress, "tickerVotes")
139139 (assetVotesValue >= assetVotesTreshold)
140140 }
141141
142142
143143 func isUpdateAllowedByRating (assetId) = if (if (isAssetUpdateAllowedByRating(assetId))
144144 then isAssetUpdateAllowedByWeight(assetId)
145145 else false)
146146 then isAssetUpdateAllowedByVotes(assetId)
147147 else false
148148
149149
150150 func getAssetIssuerAddressFromAssetId (assetId) = toString(valueOrErrorMessage(assetInfo(fromBase58String(assetId)), nonExistentAssetError).issuer)
151151
152152
153153 func getPayment (i) = valueOrErrorMessage(i.payment, noPaymentError)
154154
155155
156156 func isPaymentInWaves (i) = {
157157 let payment = getPayment(i)
158158 if (!(isDefined(payment.assetId)))
159159 then true
160160 else false
161161 }
162162
163163
164164 func isEnoughPayment (i,requiredPayment) = {
165165 let payment = getPayment(i)
166166 if ((payment.amount >= requiredPayment))
167167 then true
168168 else false
169169 }
170170
171171
172172 func isCallerAssetIssuer (i,assetId) = {
173173 let callerAddress = toBase58String(i.caller.bytes)
174174 let assetIssuerAdress = getAssetIssuerAddressFromAssetId(assetId)
175175 if ((callerAddress == assetIssuerAdress))
176176 then true
177177 else false
178178 }
179179
180180
181181 @Callable(i)
182182 func updateTicker (assetId,ticker) = {
183183 let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
184184 let isTickerReserved = isSubstrExist(reservedTickers, ticker)
185185 let isTickerFree = match getString(tickerCatalogueOracleAddress, ticker) {
186186 case t: String =>
187187 false
188188 case t: Unit =>
189189 true
190190 case _ =>
191191 throw()
192192 }
193193 if (isPaymentInWaves(i))
194194 then if (isEnoughPayment(i, tickerUpdatePrice))
195195 then if (isCallerAssetIssuer(i, assetId))
196196 then if (isUpdateAllowedByRating(assetId))
197197 then if (if (isTickerFree)
198198 then !(isTickerReserved)
199199 else false)
200200 then if (isValidTicker(ticker))
201201 then WriteSet([DataEntry(issuerTickerKey, ticker)])
202202 else throw(tickerValidationWrongFormatError)
203203 else throw(tickerValidationTickerIsExistError)
204204 else throw(tickerValidationNotEnoughRatingError)
205205 else throw(issuerAccessDeniedError)
206206 else throw(notEnoughPaymentError)
207207 else throw(notSupportedCurrencyError)
208208 }
209209
210210
211211
212212 @Callable(i)
213213 func updateDescription (assetId,description) = {
214214 let issuerDescriptionKey = ((("issuerDescription_" + "<") + assetId) + ">")
215215 if (isPaymentInWaves(i))
216216 then if (isEnoughPayment(i, descriptionUpdatePrice))
217217 then if (isCallerAssetIssuer(i, assetId))
218218 then WriteSet([DataEntry(issuerDescriptionKey, description)])
219219 else throw(issuerAccessDeniedError)
220220 else throw(notEnoughPaymentError)
221221 else throw(notSupportedCurrencyError)
222222 }
223223
224224
225225
226226 @Callable(i)
227227 func updateLink (assetId,link) = {
228228 let issuerLinkKey = ((("issuerLink_" + "<") + assetId) + ">")
229229 if (isPaymentInWaves(i))
230230 then if (isEnoughPayment(i, linkUpdatePrice))
231231 then if (isCallerAssetIssuer(i, assetId))
232232 then WriteSet([DataEntry(issuerLinkKey, link)])
233233 else throw(issuerAccessDeniedError)
234234 else throw(notEnoughPaymentError)
235235 else throw(notSupportedCurrencyError)
236236 }
237237
238238

github/deemru/w8io/3ef1775 
46.44 ms