tx · DLsfAkjiWUtxPCqWLaHeq4xZ7sWhcrtgQLGmzm7j3Bhh

3MyY8HWSxxH8SLxnBHgYZQh26FVgybkTTp9:  -0.00200000 Waves

2022.07.29 13:35 [2160999] smart account 3MyY8HWSxxH8SLxnBHgYZQh26FVgybkTTp9 > SELF 0.00000000 Waves

{ "type": 13, "id": "DLsfAkjiWUtxPCqWLaHeq4xZ7sWhcrtgQLGmzm7j3Bhh", "fee": 200000, "feeAssetId": null, "timestamp": 1659090962006, "version": 2, "chainId": 84, "sender": "3MyY8HWSxxH8SLxnBHgYZQh26FVgybkTTp9", "senderPublicKey": "69whdb3wz2NxWkDP633fGFWMnqmhZSDPJ5ThCu3x47jU", "proofs": [ "3Y8HCcSoqRGSg8Q5K5ELbMNzmb2Ke2cc3TcqZ6gpwxezVeMhAE89FfvXKDxzWmuRP513AFqu1tXsGdATu9mmn9Pb" ], "script": "base64:AAIFAAAAAAAAAAcIAhIDCgEIAAAACQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAAB2lzT3duZXIAAAABAAAAB2FkZHJlc3MJAAAAAAAAAgUAAAAHYWRkcmVzcwUAAAAEdGhpcwAAAAAbQ09VUlNfQ0VSVElGSUNBVEVfVElMRV9URVhUAgAAAA9ORlQgQ2VydGlmaWNhdGUAAAAAJ0NPVVJTX0NFUlRJRklDQVRFX0RFU0NSSVBUSU9OX0xFRlRfVEVYVAIAAABgVGhpcyBORlQgY2VydGlmaWNhdGUgY2VydGlmaWVzIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjb3Vyc2UgZm9yIGEgdXNlciB3aXRoIGEgd2FsbGV0IGFkZHJlc3Mgb2YgAAAAAChDT1VSU19DRVJUSUZJQ0FURV9ERVNDUklQVElPTl9SSUdIVF9URVhUAgAAAKMuIFRoZSB1c2VyIGhhcyBnYWluZWQgaW4tZGVwdGgga25vd2xlZGdlIGluIHVuZGVyc3RhbmRpbmcgdGhlIG9wZXJhdGlvbiBvZiB0aGUgYmxvY2tjaGFpbiwgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZXhjaGFuZ2UsIGFuZCBzdWNjZXNzZnVsbHkgcGFzc2VkIHRoZSBjb3Vyc2UgZXhhbXMuAQAAAB5nZXRDb3Vyc0NlcnRpZmljYXRlRGVzY3JpcHRpb24AAAABAAAAB2FkZHJlc3MJAAEsAAAAAgkAASwAAAACBQAAACdDT1VSU19DRVJUSUZJQ0FURV9ERVNDUklQVElPTl9MRUZUX1RFWFQFAAAAB2FkZHJlc3MFAAAAKENPVVJTX0NFUlRJRklDQVRFX0RFU0NSSVBUSU9OX1JJR0hUX1RFWFQAAAAAK0NPVVJTX0VSUk9SX0NFUlRJRklDQVRFX0FMUkVBRFlfSVNTVUVEX1RFWFQCAAAANUEgY2VydGlmaWNhdGUgaGFzIGFscmVhZHkgYmVlbiBpc3N1ZWQgYXQgeW91ciBhZGRyZXNzAQAAAAxhZGRUb0hpc3RvcnkAAAABAAAAB2FkZHJlc3MEAAAAA2tleQkAASwAAAACAgAAAAhoaXN0b3J5XwkABCUAAAABBQAAAAdhZGRyZXNzAwkBAAAAAiE9AAAAAgkBAAAADHRyeUdldFN0cmluZwAAAAEFAAAAA2tleQIAAAAACQAAAgAAAAEFAAAAK0NPVVJTX0VSUk9SX0NFUlRJRklDQVRFX0FMUkVBRFlfSVNTVUVEX1RFWFQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAAA2tleQYFAAAAA25pbAAAAAEAAAABaQEAAAAIaXNzdWVORlQAAAABAAAAB2FkZHJlc3MJAAUUAAAAAgkABEwAAAACCQAEQgAAAAUFAAAAG0NPVVJTX0NFUlRJRklDQVRFX1RJTEVfVEVYVAkBAAAAHmdldENvdXJzQ2VydGlmaWNhdGVEZXNjcmlwdGlvbgAAAAEFAAAAB2FkZHJlc3MAAAAAAAAAAAEAAAAAAAAAAAAHBQAAAANuaWwFAAAABHVuaXQAAAAA6EHtQg==", "height": 2160999, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EX1VXz9zB4gYVkmyAz8ccAmakpd8zCKDQ3btnGv2Areh Next: 7WY1qii5a9eQQXEuTa1yQ8hQhZMcLb6rZfyub8U4BXY4 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func tryGetString (key) = {
5+ let val = match getString(this, key) {
6+ case b: String =>
7+ b
8+ case _ =>
9+ ""
10+ }
11+ val
12+ }
13+
14+
15+func tryGetInteger (key) = {
16+ let val = match getInteger(this, key) {
17+ case b: Int =>
18+ b
19+ case _ =>
20+ 0
21+ }
22+ val
23+ }
24+
25+
26+func isOwner (address) = (address == this)
27+
28+
429 let COURS_CERTIFICATE_TILE_TEXT = "NFT Certificate"
530
631 let COURS_CERTIFICATE_DESCRIPTION_LEFT_TEXT = "This NFT certificate certifies the completion of the course for a user with a wallet address of "
833 let COURS_CERTIFICATE_DESCRIPTION_RIGHT_TEXT = ". The user has gained in-depth knowledge in understanding the operation of the blockchain, interacting with the exchange, and successfully passed the course exams."
934
1035 func getCoursCertificateDescription (address) = ((COURS_CERTIFICATE_DESCRIPTION_LEFT_TEXT + address) + COURS_CERTIFICATE_DESCRIPTION_RIGHT_TEXT)
36+
37+
38+let COURS_ERROR_CERTIFICATE_ALREADY_ISSUED_TEXT = "A certificate has already been issued at your address"
39+
40+func addToHistory (address) = {
41+ let key = ("history_" + toString(address))
42+ if ((tryGetString(key) != ""))
43+ then throw(COURS_ERROR_CERTIFICATE_ALREADY_ISSUED_TEXT)
44+ else [BooleanEntry(key, true)]
45+ }
1146
1247
1348 @Callable(i)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func tryGetString (key) = {
5+ let val = match getString(this, key) {
6+ case b: String =>
7+ b
8+ case _ =>
9+ ""
10+ }
11+ val
12+ }
13+
14+
15+func tryGetInteger (key) = {
16+ let val = match getInteger(this, key) {
17+ case b: Int =>
18+ b
19+ case _ =>
20+ 0
21+ }
22+ val
23+ }
24+
25+
26+func isOwner (address) = (address == this)
27+
28+
429 let COURS_CERTIFICATE_TILE_TEXT = "NFT Certificate"
530
631 let COURS_CERTIFICATE_DESCRIPTION_LEFT_TEXT = "This NFT certificate certifies the completion of the course for a user with a wallet address of "
732
833 let COURS_CERTIFICATE_DESCRIPTION_RIGHT_TEXT = ". The user has gained in-depth knowledge in understanding the operation of the blockchain, interacting with the exchange, and successfully passed the course exams."
934
1035 func getCoursCertificateDescription (address) = ((COURS_CERTIFICATE_DESCRIPTION_LEFT_TEXT + address) + COURS_CERTIFICATE_DESCRIPTION_RIGHT_TEXT)
36+
37+
38+let COURS_ERROR_CERTIFICATE_ALREADY_ISSUED_TEXT = "A certificate has already been issued at your address"
39+
40+func addToHistory (address) = {
41+ let key = ("history_" + toString(address))
42+ if ((tryGetString(key) != ""))
43+ then throw(COURS_ERROR_CERTIFICATE_ALREADY_ISSUED_TEXT)
44+ else [BooleanEntry(key, true)]
45+ }
1146
1247
1348 @Callable(i)
1449 func issueNFT (address) = $Tuple2([Issue(COURS_CERTIFICATE_TILE_TEXT, getCoursCertificateDescription(address), 1, 0, false)], unit)
1550
1651

github/deemru/w8io/026f985 
36.09 ms