tx · 3pTmTunKWVJMBpnieZevTcA3KTuLkZL9RT9G4g4ZV5nD
3N4zgeML2gUD4hY5YT1anEEUydY3wmwkmAt: -0.00600000 Waves
2024.03.22 18:28 [3029423] smart account 3N4zgeML2gUD4hY5YT1anEEUydY3wmwkmAt > SELF 0.00000000 Waves
{
"type": 13,
"id": "3pTmTunKWVJMBpnieZevTcA3KTuLkZL9RT9G4g4ZV5nD",
"fee": 600000,
"feeAssetId": null,
"timestamp": 1711121399869,
"version": 2,
"chainId": 84,
"sender": "3N4zgeML2gUD4hY5YT1anEEUydY3wmwkmAt",
"senderPublicKey": "GADFXE9mT3cuWvKju1WvzXoEWhkXAvvC8H3VzP9RXhRS",
"proofs": [
"3Ae8zVtsSRoDd1344cVK22facRfDT7sPT7pkXtbw8SK8MTYyc5tRU4s9quWAoZCU7JCbnUFKnDp8kNWuiv51aNEz"
],
"script": "base64:AAIFAAAAAAAAAA0IAhIECgIICBIDCgEBAAAAAgEAAAAHZ2V0RGF0YQAAAAIAAAADYWRyAAAAA2tleQQAAAAEZGF0YQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAANhZHIFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAAFAAAABGRhdGEBAAAACGF1dGhVc2VyAAAAAQAAAAFpAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGBAAAAA1jYWxsZXJBZGRyZXNzCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAJZGF0YVZhbHVlCQEAAAAHZ2V0RGF0YQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALY29ubmVjdGlvbi4FAAAADWNhbGxlckFkZHJlc3MEAAAADWV4cGVjdGVkVmFsdWUCAAAACmF1dGhvcml6ZWQDCQAAAAAAAAIFAAAACWRhdGFWYWx1ZQUAAAANZXhwZWN0ZWRWYWx1ZQYHAAAAAgAAAAFpAQAAABtzYXZlU2luZ2xlS2V5VmFsdWVPbkFjY291bnQAAAACAAAAA2tleQAAAAhrZXlWYWx1ZQMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAA2tleQUAAAAIa2V5VmFsdWUFAAAAA25pbAkAAAIAAAABAgAAAD1BY2NvdW50IGhhdCBuaWNodCBkaWUgbsO2dGlnZSBCZXJlY2h0aWd1bmcgZsO8ciBkaWVzZSBBa3Rpb24uAAAAAWkBAAAAC3JlZnVuZFdhdmVzAAAAAQAAAARjb3N0BAAAAA1hdXRoZW50aWNhdGVkCQEAAAAIYXV0aFVzZXIAAAABBQAAAAFpAwkBAAAAASEAAAABBQAAAA1hdXRoZW50aWNhdGVkCQAAAgAAAAECAAAAPUFjY291bnQgaGF0IG5pY2h0IGRpZSBuw7Z0aWdlIEJlcmVjaHRpZ3VuZyBmw7xyIGRpZXNlIEFrdGlvbi4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAARjb3N0BQAAAAR1bml0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tlecApsso=",
"height": 3029423,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: A3wUFb8HteUt5wzYgKx2aZorEeN4PQQumhNYiizzFzy4
Next: none
Diff:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
| 4 | + | func getData (adr,key) = { |
---|
| 5 | + | let data = match getString(adr, key) { |
---|
| 6 | + | case a: String => |
---|
| 7 | + | a |
---|
| 8 | + | case _ => |
---|
| 9 | + | "" |
---|
| 10 | + | } |
---|
| 11 | + | data |
---|
| 12 | + | } |
---|
| 13 | + | |
---|
| 14 | + | |
---|
| 15 | + | func authUser (i) = if ((i.caller == this)) |
---|
| 16 | + | then true |
---|
| 17 | + | else { |
---|
| 18 | + | let callerAddress = toString(i.caller) |
---|
| 19 | + | let dataValue = getData(this, ("connection." + callerAddress)) |
---|
| 20 | + | let expectedValue = "authorized" |
---|
| 21 | + | if ((dataValue == expectedValue)) |
---|
| 22 | + | then true |
---|
| 23 | + | else false |
---|
| 24 | + | } |
---|
| 25 | + | |
---|
| 26 | + | |
---|
| 27 | + | @Callable(i) |
---|
| 28 | + | func saveSingleKeyValueOnAccount (key,keyValue) = if ((i.caller == this)) |
---|
| 29 | + | then [StringEntry(key, keyValue)] |
---|
| 30 | + | else throw("Account hat nicht die nötige Berechtigung für diese Aktion.") |
---|
| 31 | + | |
---|
4 | 32 | | |
---|
5 | 33 | | |
---|
6 | 34 | | @Callable(i) |
---|
7 | 35 | | func refundWaves (cost) = { |
---|
8 | | - | let authenticated = true |
---|
| 36 | + | let authenticated = authUser(i) |
---|
9 | 37 | | if (!(authenticated)) |
---|
10 | 38 | | then throw("Account hat nicht die nötige Berechtigung für diese Aktion.") |
---|
11 | 39 | | else [ScriptTransfer(i.caller, cost, unit)] |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
| 4 | + | func getData (adr,key) = { |
---|
| 5 | + | let data = match getString(adr, key) { |
---|
| 6 | + | case a: String => |
---|
| 7 | + | a |
---|
| 8 | + | case _ => |
---|
| 9 | + | "" |
---|
| 10 | + | } |
---|
| 11 | + | data |
---|
| 12 | + | } |
---|
| 13 | + | |
---|
| 14 | + | |
---|
| 15 | + | func authUser (i) = if ((i.caller == this)) |
---|
| 16 | + | then true |
---|
| 17 | + | else { |
---|
| 18 | + | let callerAddress = toString(i.caller) |
---|
| 19 | + | let dataValue = getData(this, ("connection." + callerAddress)) |
---|
| 20 | + | let expectedValue = "authorized" |
---|
| 21 | + | if ((dataValue == expectedValue)) |
---|
| 22 | + | then true |
---|
| 23 | + | else false |
---|
| 24 | + | } |
---|
| 25 | + | |
---|
| 26 | + | |
---|
| 27 | + | @Callable(i) |
---|
| 28 | + | func saveSingleKeyValueOnAccount (key,keyValue) = if ((i.caller == this)) |
---|
| 29 | + | then [StringEntry(key, keyValue)] |
---|
| 30 | + | else throw("Account hat nicht die nötige Berechtigung für diese Aktion.") |
---|
| 31 | + | |
---|
4 | 32 | | |
---|
5 | 33 | | |
---|
6 | 34 | | @Callable(i) |
---|
7 | 35 | | func refundWaves (cost) = { |
---|
8 | | - | let authenticated = true |
---|
| 36 | + | let authenticated = authUser(i) |
---|
9 | 37 | | if (!(authenticated)) |
---|
10 | 38 | | then throw("Account hat nicht die nötige Berechtigung für diese Aktion.") |
---|
11 | 39 | | else [ScriptTransfer(i.caller, cost, unit)] |
---|
12 | 40 | | } |
---|
13 | 41 | | |
---|
14 | 42 | | |
---|
15 | 43 | | @Verifier(tx) |
---|
16 | 44 | | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) |
---|
17 | 45 | | |
---|