tx · 6mZ7mNrRRfr4AFinxiox3HQzMRXSXeCptSQMGvWBFLzh

3PJpd1tujGgKdHEAXjG9oGsMxyE8vzx1eJ4:  -0.01000000 Waves

2022.10.13 21:51 [3336413] smart account 3PJpd1tujGgKdHEAXjG9oGsMxyE8vzx1eJ4 > SELF 0.00000000 Waves

{ "type": 13, "id": "6mZ7mNrRRfr4AFinxiox3HQzMRXSXeCptSQMGvWBFLzh", "fee": 1000000, "feeAssetId": null, "timestamp": 1665687153612, "version": 2, "chainId": 87, "sender": "3PJpd1tujGgKdHEAXjG9oGsMxyE8vzx1eJ4", "senderPublicKey": "2zZ2ZoogVGxjTRzxu9Sx5JG6nwmctE4TPGZTxc6DiWp9", "proofs": [ "2hvhNFxVGGcW9fewpv3MqBekPJN64Zj2fgxFLNHqssijGuopgAJwdNSnYq2J5LhAv46TDwg8nskeiQ1fFgxApSJa" ], "script": "base64:BgINCAISAwoBCBIECgIICAoACXNlcGFyYXRvcgIBOwAQY29uZmlnQWRkcmVzc0tleQIGY29uZmlnAAlhZG1pbnNLZXkCBmFkbWlucwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUQY29uZmlnQWRkcmVzc0tleQEHaXNBZG1pbgEGY2FsbGVyBAZhZG1Sb3cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwUJYWRtaW5zS2V5AgADAwkAAAIFBmNhbGxlcgUEdGhpcwYJAQhjb250YWlucwIFBmFkbVJvdwkApQgBBQZjYWxsZXIGBwENZ2V0RXZlbnRlcktleQEHZXZlbnRlcgkArAICAghldmVudGVyXwUHZXZlbnRlcgEJaXNFdmVudGVyAQdldmVudGVyBAhpc0V4aXN0cwkBCWlzRGVmaW5lZAEJAJ0IAgUNY29uZmlnQWRkcmVzcwkBDWdldEV2ZW50ZXJLZXkBCQClCAEFB2V2ZW50ZXIFCGlzRXhpc3RzAQdnZXRJdGVtAgdldmVudElkBGRhcHAJAKwCAgkArAICBQdldmVudElkAgFfBQRkYXBwARlnZXRIaXN0b3J5U3RvcmFnZUNvdW50S2V5AQdhZGRyZXNzCQCsAgICGnN0b3JhZ2VfY291bnRfZm9yX2FkZHJlc3NfBQdhZGRyZXNzARVnZXRIaXN0b3J5U3RvcmFnZU5LZXkCB2FkZHJlc3MBbgkArAICCQCsAgIJAKwCAgIUc3RvcmFnZV9mb3JfYWRkcmVzc18FB2FkZHJlc3MCAV8JAKQDAQUBbgIBaQEEaW5pdAEGY29uZmlnAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIQb25seSBtYWluIGNhbiBkbwQIaXNFeGlzdHMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFEGNvbmZpZ0FkZHJlc3NLZXkDCQEBIQEFCGlzRXhpc3RzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEGNvbmZpZ0FkZHJlc3NLZXkFBmNvbmZpZwUDbmlsCQACAQIOYWxyZWFkeSBpbml0ZWQBaQENc2F2ZVRvSGlzdG9yeQIHZXZlbnRJZAdhZGRyZXNzAwkBASEBCQEJaXNFdmVudGVyAQgFAWkGY2FsbGVyCQACAQITb25seSBldmVudGVyIGNhbiBkbwQMY3VycmVudEluZGV4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARlnZXRIaXN0b3J5U3RvcmFnZUNvdW50S2V5AQUHYWRkcmVzcwABBA5jdXJyZW50SGlzdG9yeQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEVZ2V0SGlzdG9yeVN0b3JhZ2VOS2V5AgUHYWRkcmVzcwUMY3VycmVudEluZGV4AgAEC2xpc3RIaXN0b3J5CQC1CQIFDmN1cnJlbnRIaXN0b3J5BQlzZXBhcmF0b3IEBGl0ZW0JAQdnZXRJdGVtAgUHZXZlbnRJZAkApQgBCAUBaQZjYWxsZXIDCQBnAgBkCQCQAwEFC2xpc3RIaXN0b3J5BApuZXdIaXN0b3J5AwkAAAIJALECAQUOY3VycmVudEhpc3RvcnkAAAUEaXRlbQkArAICCQCsAgIFBGl0ZW0FCXNlcGFyYXRvcgUOY3VycmVudEhpc3RvcnkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFWdldEhpc3RvcnlTdG9yYWdlTktleQIFB2FkZHJlc3MFDGN1cnJlbnRJbmRleAUKbmV3SGlzdG9yeQUDbmlsBApuZXdIaXN0b3J5BQRpdGVtCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVnZXRIaXN0b3J5U3RvcmFnZU5LZXkCBQdhZGRyZXNzCQBkAgUMY3VycmVudEluZGV4AAEFCm5ld0hpc3RvcnkJAMwIAgkBDEludGVnZXJFbnRyeQIJARlnZXRIaXN0b3J5U3RvcmFnZUNvdW50S2V5AQUHYWRkcmVzcwkAZAIFDGN1cnJlbnRJbmRleAABBQNuaWwA+/QPew==", "height": 3336413, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7BUs6T8o7McbLTqpVrUt1PKrnPmSFfpMayS3ofKmCsdL Next: none Diff:
OldNewDifferences
6161 then {
6262 let newHistory = if ((size(currentHistory) == 0))
6363 then item
64- else ((currentHistory + separator) + item)
64+ else ((item + separator) + currentHistory)
6565 [StringEntry(getHistoryStorageNKey(address, currentIndex), newHistory)]
6666 }
6767 else {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = ";"
55
66 let configAddressKey = "config"
77
88 let adminsKey = "admins"
99
1010 let configAddress = addressFromStringValue(getStringValue(this, configAddressKey))
1111
1212 func isAdmin (caller) = {
1313 let admRow = valueOrElse(getString(configAddress, adminsKey), "")
1414 if (if ((caller == this))
1515 then true
1616 else contains(admRow, toString(caller)))
1717 then true
1818 else false
1919 }
2020
2121
2222 func getEventerKey (eventer) = ("eventer_" + eventer)
2323
2424
2525 func isEventer (eventer) = {
2626 let isExists = isDefined(getString(configAddress, getEventerKey(toString(eventer))))
2727 isExists
2828 }
2929
3030
3131 func getItem (eventId,dapp) = ((eventId + "_") + dapp)
3232
3333
3434 func getHistoryStorageCountKey (address) = ("storage_count_for_address_" + address)
3535
3636
3737 func getHistoryStorageNKey (address,n) = ((("storage_for_address_" + address) + "_") + toString(n))
3838
3939
4040 @Callable(i)
4141 func init (config) = if ((i.caller != this))
4242 then throw("only main can do")
4343 else {
4444 let isExists = isDefined(getString(this, configAddressKey))
4545 if (!(isExists))
4646 then [StringEntry(configAddressKey, config)]
4747 else throw("already inited")
4848 }
4949
5050
5151
5252 @Callable(i)
5353 func saveToHistory (eventId,address) = if (!(isEventer(i.caller)))
5454 then throw("only eventer can do")
5555 else {
5656 let currentIndex = valueOrElse(getInteger(this, getHistoryStorageCountKey(address)), 1)
5757 let currentHistory = valueOrElse(getString(this, getHistoryStorageNKey(address, currentIndex)), "")
5858 let listHistory = split(currentHistory, separator)
5959 let item = getItem(eventId, toString(i.caller))
6060 if ((100 >= size(listHistory)))
6161 then {
6262 let newHistory = if ((size(currentHistory) == 0))
6363 then item
64- else ((currentHistory + separator) + item)
64+ else ((item + separator) + currentHistory)
6565 [StringEntry(getHistoryStorageNKey(address, currentIndex), newHistory)]
6666 }
6767 else {
6868 let newHistory = item
6969 [StringEntry(getHistoryStorageNKey(address, (currentIndex + 1)), newHistory), IntegerEntry(getHistoryStorageCountKey(address), (currentIndex + 1))]
7070 }
7171 }
7272
7373

github/deemru/w8io/0e76f2f 
39.82 ms