2022.08.02 10:49 [3232102] smart account 3PGDBqydxV1QvutiaoHaZy1xxcMojQeY66e > SELF 0.00000000 Waves
{ "type": 13, "id": "FPJuXBY3ntpWRCGwQwXcStGZBSv3YZ6ZWj1MouhB5i31", "fee": 200000, "feeAssetId": null, "timestamp": 1659426610562, "version": 2, "chainId": 87, "sender": "3PGDBqydxV1QvutiaoHaZy1xxcMojQeY66e", "senderPublicKey": "G9iQ91rKzdTCnf9YCZtYqbpjWQZmFKikSjLF6QbBLpHP", "proofs": [ "2ENbXiFPzZqs7eoST3WCUTPPES88uUMiJdstHRkZjCNWWFfPmbmdKRNJ8wTZoZWwaZQeMmBj52zbgQDKniSWYtpt" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAACAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkEAAAAA3ZhbAQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYgUAAAAHJG1hdGNoMAUAAAABYgIAAAAABQAAAAN2YWwBAAAADXRyeUdldEludGVnZXIAAAABAAAAA2tleQQAAAADdmFsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAABQAAAAN2YWwBAAAAB2lzT3duZXIAAAABAAAAB2FkZHJlc3MJAAAAAAAAAgUAAAAHYWRkcmVzcwUAAAAEdGhpcwAAAAAbQ09VUlNfQ0VSVElGSUNBVEVfVElMRV9URVhUAgAAAA9ORlQgQ2VydGlmaWNhdGUAAAAAJ0NPVVJTX0NFUlRJRklDQVRFX0RFU0NSSVBUSU9OX0xFRlRfVEVYVAIAAABgVGhpcyBORlQgY2VydGlmaWNhdGUgY2VydGlmaWVzIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjb3Vyc2UgZm9yIGEgdXNlciB3aXRoIGEgd2FsbGV0IGFkZHJlc3Mgb2YgAAAAAChDT1VSU19DRVJUSUZJQ0FURV9ERVNDUklQVElPTl9SSUdIVF9URVhUAgAAAKMuIFRoZSB1c2VyIGhhcyBnYWluZWQgaW4tZGVwdGgga25vd2xlZGdlIGluIHVuZGVyc3RhbmRpbmcgdGhlIG9wZXJhdGlvbiBvZiB0aGUgYmxvY2tjaGFpbiwgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZXhjaGFuZ2UsIGFuZCBzdWNjZXNzZnVsbHkgcGFzc2VkIHRoZSBjb3Vyc2UgZXhhbXMuAQAAAB5nZXRDb3Vyc0NlcnRpZmljYXRlRGVzY3JpcHRpb24AAAABAAAAB2FkZHJlc3MJAAEsAAAAAgkAASwAAAACBQAAACdDT1VSU19DRVJUSUZJQ0FURV9ERVNDUklQVElPTl9MRUZUX1RFWFQFAAAAB2FkZHJlc3MFAAAAKENPVVJTX0NFUlRJRklDQVRFX0RFU0NSSVBUSU9OX1JJR0hUX1RFWFQAAAAAK0NPVVJTX0VSUk9SX0NFUlRJRklDQVRFX0FMUkVBRFlfSVNTVUVEX1RFWFQCAAAANUEgY2VydGlmaWNhdGUgaGFzIGFscmVhZHkgYmVlbiBpc3N1ZWQgYXQgeW91ciBhZGRyZXNzAAAAAQAAAAFpAQAAAAhpc3N1ZU5GVAAAAAAEAAAAA2tleQkAASwAAAACAgAAAAhoaXN0b3J5XwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAAAAAAAIJAQAAAAx0cnlHZXRTdHJpbmcAAAABBQAAAANrZXkCAAAAAAkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIaGlzdG9yeV8JAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAR0cnVlCQAETAAAAAIJAARCAAAABQUAAAAbQ09VUlNfQ0VSVElGSUNBVEVfVElMRV9URVhUCQEAAAAeZ2V0Q291cnNDZXJ0aWZpY2F0ZURlc2NyaXB0aW9uAAAAAQkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAEAAAAAAAAAAAAHBQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQUAAAArQ09VUlNfRVJST1JfQ0VSVElGSUNBVEVfQUxSRUFEWV9JU1NVRURfVEVYVAAAAAAwQWX4", "height": 3232102, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9CcLoduHJ638u1To661BSwLBW55hzKvLPEFmmpAKpE7K Next: 6qrhcaPra9nLjcCdB5r9Jp5ypvGycDSkVnjktp6BfS1C Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func tryGetString (key) = { | |
5 | 5 | let val = match getString(this, key) { | |
6 | 6 | case b: String => | |
7 | 7 | b | |
8 | 8 | case _ => | |
9 | 9 | "" | |
10 | 10 | } | |
11 | 11 | val | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func tryGetInteger (key) = { | |
16 | 16 | let val = match getInteger(this, key) { | |
17 | 17 | case b: Int => | |
18 | 18 | b | |
19 | 19 | case _ => | |
20 | 20 | 0 | |
21 | 21 | } | |
22 | 22 | val | |
23 | 23 | } | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func isOwner (address) = (address == this) | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | let COURS_CERTIFICATE_TILE_TEXT = "NFT Certificate" | |
30 | 30 | ||
31 | 31 | let COURS_CERTIFICATE_DESCRIPTION_LEFT_TEXT = "This NFT certificate certifies the completion of the course for a user with a wallet address of " | |
32 | 32 | ||
33 | 33 | 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." | |
34 | 34 | ||
35 | 35 | func getCoursCertificateDescription (address) = ((COURS_CERTIFICATE_DESCRIPTION_LEFT_TEXT + address) + COURS_CERTIFICATE_DESCRIPTION_RIGHT_TEXT) | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | let COURS_ERROR_CERTIFICATE_ALREADY_ISSUED_TEXT = "A certificate has already been issued at your address" | |
39 | 39 | ||
40 | 40 | @Callable(i) | |
41 | 41 | func issueNFT () = { | |
42 | 42 | let key = ("history_" + toString(i.caller)) | |
43 | 43 | if ((tryGetString(key) == "")) | |
44 | 44 | then $Tuple2([StringEntry(("history_" + toString(i.caller)), "true"), Issue(COURS_CERTIFICATE_TILE_TEXT, getCoursCertificateDescription(toString(i.caller)), 1, 0, false)], unit) | |
45 | 45 | else throw(COURS_ERROR_CERTIFICATE_ALREADY_ISSUED_TEXT) | |
46 | 46 | } | |
47 | 47 | ||
48 | 48 |
github/deemru/w8io/786bc32 22.87 ms ◑