tx · 5bgQwdmxfFfFCcYYDU1y5vycz1imviBojKEciesrKr95

3NAg879tKUJh949h21umkwiaRQhwZftz1BE:  -0.01400000 Waves

2019.08.09 13:58 [623353] smart account 3NAg879tKUJh949h21umkwiaRQhwZftz1BE > SELF 0.00000000 Waves

{ "type": 13, "id": "5bgQwdmxfFfFCcYYDU1y5vycz1imviBojKEciesrKr95", "fee": 1400000, "feeAssetId": null, "timestamp": 1565348322959, "version": 1, "sender": "3NAg879tKUJh949h21umkwiaRQhwZftz1BE", "senderPublicKey": "BqY2jhkQCcbidtQdQZu6f9RV3AkFAS8VPToHxwYu1KdJ", "proofs": [ "3Kah6hvufXdQzah812oiee2pURYYk2hVwqGD3xVMSWLwZhFMV6xMAFxDxDDt1DErDHduvZqizow4Pcd4NdXwHdkW" ], "script": "base64:AAIDAAAAAAAAAAAAAAAFAAAAABZkZXNjcmlwdGlvblVwZGF0ZVByaWNlAAAAAAAF9eEAAAAAAA9saW5rVXBkYXRlUHJpY2UAAAAAAAX14QAAAAAAEXRpY2tlclVwZGF0ZVByaWNlAAAAAAAL68IAAAAAABx0aWNrZXJDYXRhbG9ndWVPcmFjbGVBZGRyZXNzCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAECAAAAIzNNeEh4VzVWV3E0S3JXY2JoRmZ4S3JhZlhtNG1MNnJaSGZqAQAAABRnZXRTdHJpbmdGcm9tQWNjb3VudAAAAAIAAAAOYWNjb3VudEFkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAADmFjY291bnRBZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAUAAAABcwUAAAAEdW5pdAAAAAIAAAABaQEAAAARdXBkYXRlRGVzY3JpcHRpb24AAAADAAAAB2Fzc2V0SWQAAAANaXNzdWVyQWRkcmVzcwAAAAtkZXNjcmlwdGlvbgQAAAAHcGF5bWVudAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAA1jYWxsZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAFGlzc3VlckRlc2NyaXB0aW9uS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABJpc3N1ZXJEZXNjcmlwdGlvbl8CAAAAATwFAAAAB2Fzc2V0SWQCAAAAAT4DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAC5lcnJvciMxLiBUaGUgc2VydmljZSBjYW4gb25seSBiZSBwYWlkIGluIHdhdmVzAwkAAGcAAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAFmRlc2NyaXB0aW9uVXBkYXRlUHJpY2UDCQAAAAAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAADWlzc3VlckFkZHJlc3MJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFGlzc3VlckRlc2NyaXB0aW9uS2V5BQAAAAtkZXNjcmlwdGlvbgUAAAADbmlsCQAAAgAAAAECAAAAN2Vycm9yIzMuIE9ubHkgYXNzZXQgaXNzdWVyIGNhbiB1cGRhdGUgYXNzZXQgZGVzY3JpcHRpb24JAAACAAAAAQIAAABEZXJyb3IjMi4gSW5zdWZmaWNpZW50IHBheW1lbnQgZm9yIGFzc2V0IGRlc2NyaXB0aW9uIHVwZGFhdGUgc2VydmljZS4AAAABaQEAAAAMdXBkYXRlVGlja2VyAAAAAwAAAAdhc3NldElkAAAADWlzc3VlckFkZHJlc3MAAAAGdGlja2VyBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAPaXNzdWVyVGlja2VyS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA1pc3N1ZXJUaWNrZXJfAgAAAAE8BQAAAAdhc3NldElkAgAAAAE+AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAuZXJyb3IjMS4gVGhlIHNlcnZpY2UgY2FuIG9ubHkgYmUgcGFpZCBpbiB3YXZlcwMJAABnAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAABF0aWNrZXJVcGRhdGVQcmljZQMJAAAAAAAAAgUAAAANY2FsbGVyQWRkcmVzcwUAAAANaXNzdWVyQWRkcmVzcwQAAAAQdGlja2VyRnJvbU9yYWNsZQkBAAAAFGdldFN0cmluZ0Zyb21BY2NvdW50AAAAAgUAAAAcdGlja2VyQ2F0YWxvZ3VlT3JhY2xlQWRkcmVzcwUAAAAGdGlja2VyAwkBAAAAAiE9AAAAAgUAAAAQdGlja2VyRnJvbU9yYWNsZQUAAAAEdW5pdAkAAAIAAAABAgAAACdBc3NldCB3aXRoIHN1Y2ggdGlja2VyIGlzIGFscmVhZHkgZXhpc3QJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD2lzc3VlclRpY2tlcktleQUAAAAGdGlja2VyBQAAAANuaWwJAAACAAAAAQIAAAA3ZXJyb3IjMy4gT25seSBhc3NldCBpc3N1ZXIgY2FuIHVwZGF0ZSBhc3NldCBkZXNjcmlwdGlvbgkAAAIAAAABAgAAAERlcnJvciMyLiBJbnN1ZmZpY2llbnQgcGF5bWVudCBmb3IgYXNzZXQgZGVzY3JpcHRpb24gdXBkYWF0ZSBzZXJ2aWNlLgAAAAD1WNN0", "chainId": 84, "height": 623353, "spentComplexity": 0 } View: original | compacted Prev: 9N5rCPirTJEYXNaLeH2i3fq85uUGSNbVLLfcyR8M9T7L Next: Aoyk4yduRKWz3UzbBdaW2KdCKgVK7vgcvA7pSo5nKN78 Diff:
OldNewDifferences
77
88 let tickerUpdatePrice = 200000000
99
10+let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
11+
12+func getStringFromAccount (accountAddress,key) = match getString(accountAddress, key) {
13+ case s: String =>
14+ s
15+ case _ =>
16+ unit
17+}
18+
19+
1020 @Callable(i)
1121 func updateDescription (assetId,issuerAddress,description) = {
12- let asset = assetInfo(value(fromBase58String(assetId)))
1322 let payment = extract(i.payment)
1423 let callerAddress = toBase58String(i.caller.bytes)
1524 let issuerDescriptionKey = ((("issuerDescription_" + "<") + assetId) + ">")
2332 }
2433
2534
35+
36+@Callable(i)
37+func updateTicker (assetId,issuerAddress,ticker) = {
38+ let payment = extract(i.payment)
39+ let callerAddress = toBase58String(i.caller.bytes)
40+ let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
41+ if (isDefined(payment.assetId))
42+ then throw("error#1. The service can only be paid in waves")
43+ else if ((payment.amount >= tickerUpdatePrice))
44+ then if ((callerAddress == issuerAddress))
45+ then {
46+ let tickerFromOracle = getStringFromAccount(tickerCatalogueOracleAddress, ticker)
47+ if ((tickerFromOracle != unit))
48+ then throw("Asset with such ticker is already exist")
49+ else WriteSet([DataEntry(issuerTickerKey, ticker)])
50+ }
51+ else throw("error#3. Only asset issuer can update asset description")
52+ else throw("error#2. Insufficient payment for asset description updaate service.")
53+ }
54+
55+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let descriptionUpdatePrice = 100000000
55
66 let linkUpdatePrice = 100000000
77
88 let tickerUpdatePrice = 200000000
99
10+let tickerCatalogueOracleAddress = addressFromStringValue("3MxHxW5VWq4KrWcbhFfxKrafXm4mL6rZHfj")
11+
12+func getStringFromAccount (accountAddress,key) = match getString(accountAddress, key) {
13+ case s: String =>
14+ s
15+ case _ =>
16+ unit
17+}
18+
19+
1020 @Callable(i)
1121 func updateDescription (assetId,issuerAddress,description) = {
12- let asset = assetInfo(value(fromBase58String(assetId)))
1322 let payment = extract(i.payment)
1423 let callerAddress = toBase58String(i.caller.bytes)
1524 let issuerDescriptionKey = ((("issuerDescription_" + "<") + assetId) + ">")
1625 if (isDefined(payment.assetId))
1726 then throw("error#1. The service can only be paid in waves")
1827 else if ((payment.amount >= descriptionUpdatePrice))
1928 then if ((callerAddress == issuerAddress))
2029 then WriteSet([DataEntry(issuerDescriptionKey, description)])
2130 else throw("error#3. Only asset issuer can update asset description")
2231 else throw("error#2. Insufficient payment for asset description updaate service.")
2332 }
2433
2534
35+
36+@Callable(i)
37+func updateTicker (assetId,issuerAddress,ticker) = {
38+ let payment = extract(i.payment)
39+ let callerAddress = toBase58String(i.caller.bytes)
40+ let issuerTickerKey = ((("issuerTicker_" + "<") + assetId) + ">")
41+ if (isDefined(payment.assetId))
42+ then throw("error#1. The service can only be paid in waves")
43+ else if ((payment.amount >= tickerUpdatePrice))
44+ then if ((callerAddress == issuerAddress))
45+ then {
46+ let tickerFromOracle = getStringFromAccount(tickerCatalogueOracleAddress, ticker)
47+ if ((tickerFromOracle != unit))
48+ then throw("Asset with such ticker is already exist")
49+ else WriteSet([DataEntry(issuerTickerKey, ticker)])
50+ }
51+ else throw("error#3. Only asset issuer can update asset description")
52+ else throw("error#2. Insufficient payment for asset description updaate service.")
53+ }
54+
55+

github/deemru/w8io/3ef1775 
44.30 ms