tx · 7GGXH3syx5ANdEU857ZrWNcyTJzF3Viqdk7vEPpxNnk9
3N7NSGttZdtSoZanmmvFbtbKy81aH3qmCr1: -0.01000000 Waves
2022.10.26 16:27 [2289448] smart account 3N7NSGttZdtSoZanmmvFbtbKy81aH3qmCr1 > SELF 0.00000000 Waves
{
"type": 13,
"id": "7GGXH3syx5ANdEU857ZrWNcyTJzF3Viqdk7vEPpxNnk9",
"fee": 1000000,
"feeAssetId": null,
"timestamp": 1666790906566,
"version": 2,
"chainId": 84,
"sender": "3N7NSGttZdtSoZanmmvFbtbKy81aH3qmCr1",
"senderPublicKey": "DnHWpL2JmrKWWVJgbwq4czBSA7NpfK3MyfsKzKLJbcro",
"proofs": [
"4xt7G5gexBjfXcXLan3V2fMEo3b3EcVQe6e82ej36y5jKZFzN5y8GnoAZF2eS5Vy2wiDc36ZWDiVEv3vyYmngqCe"
],
"script": "base64:AAIFAAAAAAAAABYIAhIFCgMICAESBAoCCAISAwoBCBIAAAAADwEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbid0IHJlYWQgJwUAAAADa2V5AgAAAA0nIGF0IGFkZHJlc3MgCQAEJQAAAAEFAAAAB2FkZHJlc3MBAAAAEWdldEludGVnZXJPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEAAAAMbWF5YmVBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAMbWF5YmVBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgYWRkcmVzcyBmcm9tICcFAAAADG1heWJlQWRkcmVzcwIAAAABJwEAAAAKa2V5X2VudGl0eQAAAAMAAAAEbmFtZQAAAAJwawAAAAhwcm9wZXJ0eQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARuYW1lAgAAAAFfBQAAAAJwawIAAAABXwUAAAAIcHJvcGVydHkBAAAADmtleV9OYW1lX3Rva2VuAAAAAQAAAARuYW1lCQEAAAAKa2V5X2VudGl0eQAAAAMCAAAABE5hbWUFAAAABG5hbWUCAAAABXRva2VuAAAAABFrZXlfbWVlZHVzQWRkcmVzcwIAAAANbWVlZHVzQWRkcmVzcwAAAAAUa2V5X3JlZ2lzdHJhckFkZHJlc3MCAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAAAF2tleV9tZWVkdXNJbml0VGltZXN0YW1wAgAAABNtZWVkdXNJbml0VGltZXN0YW1wAAAAAA1tZWVkdXNBZGRyZXNzCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAEWtleV9tZWVkdXNBZGRyZXNzAAAAAAZtZWVkdXMJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQUAAAANbWVlZHVzQWRkcmVzcwAAAAAQcmVnaXN0cmFyQWRkcmVzcwkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzBQAAABRrZXlfcmVnaXN0cmFyQWRkcmVzcwAAAAAJcmVnaXN0cmFyCQEAAAATcGFyc2VBZGRyZXNzT3JUaHJvdwAAAAEFAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAAAE21lZWR1c0luaXRUaW1lc3RhbXAJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMFAAAAF2tleV9tZWVkdXNJbml0VGltZXN0YW1wAQAAAAVpc05GVAAAAAEAAAAFYXNzZXQDAwMJAQAAAAIhPQAAAAIIBQAAAAVhc3NldAAAAAhxdWFudGl0eQAAAAAAAAAAAQYJAQAAAAIhPQAAAAIIBQAAAAVhc3NldAAAAAZpc3N1ZXIFAAAABm1lZWR1cwYJAQAAAAIhPQAAAAIIBQAAAAVhc3NldAAAAAhkZWNpbWFscwAAAAAAAAAAAAYJAQAAAAIhPQAAAAIIBQAAAAVhc3NldAAAAApyZWlzc3VhYmxlBwEAAAAMbWFrZVRyYW5zZmVyAAAAAgAAAAdhZGRyZXNzAAAABWFzc2V0BAAAAAckbWF0Y2gwCQAD/AAAAAQFAAAABHRoaXMCAAAACHRyYW5zZmVyCQAETAAAAAIFAAAAB2FkZHJlc3MJAARMAAAAAgUAAAAFYXNzZXQFAAAAA25pbAUAAAADbmlsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiCQAAAgAAAAECAAAAG0ludmFsaWQgcmVzdWx0IGZvciB0cmFuc2ZlcgAAAAQAAAADaW52AQAAAARpbml0AAAAAwAAAA1tZWVkdXNBZGRyZXNzAAAAEHJlZ2lzdHJhckFkZHJlc3MAAAATbWVlZHVzSW5pdFRpbWVzdGFtcAkA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",
"height": 2289448,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 9k6Jx3Mi3YAZojXPtdhRdHGmRFrsjBcVZBo9H9rH8emE
Next: HFz1cVTuPoARbUvRmhmZuSxWvz5e6xCWwY6GSwUC4qkz
Diff:
Old | New | | Differences |
---|
10 | 10 | | func e (f) = valueOrErrorMessage(addressFromString(f), (("Can't parse address from '" + f) + "'")) |
---|
11 | 11 | | |
---|
12 | 12 | | |
---|
13 | | - | func g (h) = ("Reissued_" + h) |
---|
| 13 | + | func g (h,i,j) = ((((h + "_") + i) + "_") + j) |
---|
14 | 14 | | |
---|
15 | 15 | | |
---|
16 | | - | let i = "meedusAddress" |
---|
| 16 | + | func k (h) = g("Name", h, "token") |
---|
17 | 17 | | |
---|
18 | | - | let j = "registrarAddress" |
---|
19 | 18 | | |
---|
20 | | - | let k = "meedusInitTimestamp" |
---|
| 19 | + | let l = "meedusAddress" |
---|
21 | 20 | | |
---|
22 | | - | let l = a(this, i) |
---|
| 21 | + | let m = "registrarAddress" |
---|
23 | 22 | | |
---|
24 | | - | let m = e(l) |
---|
| 23 | + | let n = "meedusInitTimestamp" |
---|
25 | 24 | | |
---|
26 | | - | let n = a(this, j) |
---|
| 25 | + | let o = a(this, l) |
---|
27 | 26 | | |
---|
28 | | - | let o = e(n) |
---|
| 27 | + | let p = e(o) |
---|
29 | 28 | | |
---|
30 | | - | let p = d(this, k) |
---|
| 29 | + | let q = a(this, m) |
---|
31 | 30 | | |
---|
32 | | - | @Callable(q) |
---|
33 | | - | func init (l,n,p) = [StringEntry(i, l), StringEntry(j, n), IntegerEntry(k, p)] |
---|
| 31 | + | let r = e(q) |
---|
| 32 | + | |
---|
| 33 | + | let s = d(this, n) |
---|
| 34 | + | |
---|
| 35 | + | func t (u) = if (if (if ((u.quantity != 1)) |
---|
| 36 | + | then true |
---|
| 37 | + | else (u.issuer != p)) |
---|
| 38 | + | then true |
---|
| 39 | + | else (u.decimals != 0)) |
---|
| 40 | + | then true |
---|
| 41 | + | else (u.reissuable != false) |
---|
| 42 | + | |
---|
| 43 | + | |
---|
| 44 | + | func v (b,u) = { |
---|
| 45 | + | let w = invoke(this, "transfer", [b, u], nil) |
---|
| 46 | + | if ($isInstanceOf(w, "Boolean")) |
---|
| 47 | + | then { |
---|
| 48 | + | let x = w |
---|
| 49 | + | x |
---|
| 50 | + | } |
---|
| 51 | + | else throw("Invalid result for transfer") |
---|
| 52 | + | } |
---|
| 53 | + | |
---|
| 54 | + | |
---|
| 55 | + | @Callable(y) |
---|
| 56 | + | func init (o,q,s) = [StringEntry(l, o), StringEntry(m, q), IntegerEntry(n, s)] |
---|
34 | 57 | | |
---|
35 | 58 | | |
---|
36 | 59 | | |
---|
37 | | - | @Callable(q) |
---|
38 | | - | func exchange () = { |
---|
39 | | - | let r = q.caller |
---|
40 | | - | let s = toString(r) |
---|
41 | | - | let t = q.payments[0] |
---|
42 | | - | let u = valueOrErrorMessage(t.assetId, "Asset cannot be WAVES") |
---|
43 | | - | let v = valueOrErrorMessage(assetInfo(u), "Invalid asset") |
---|
44 | | - | if ((t.amount != 1)) |
---|
45 | | - | then throw("Incorrect amount of asset") |
---|
46 | | - | else if (if (if (if ((v.quantity != 1)) |
---|
47 | | - | then true |
---|
48 | | - | else (v.issuer != m)) |
---|
49 | | - | then true |
---|
50 | | - | else (v.decimals != 0)) |
---|
51 | | - | then true |
---|
52 | | - | else (v.reissuable == true)) |
---|
53 | | - | then throw("Asset in payment is not NFT") |
---|
54 | | - | else { |
---|
55 | | - | let w = invoke(o, "register", [v.name, s, p], nil) |
---|
56 | | - | if ((w == w)) |
---|
57 | | - | then nil |
---|
58 | | - | else throw("Strict value is not equal to itself.") |
---|
59 | | - | } |
---|
| 60 | + | @Callable(y) |
---|
| 61 | + | func transfer (z,u) = { |
---|
| 62 | + | let b = e(z) |
---|
| 63 | + | $Tuple2([ScriptTransfer(b, 1, u)], true) |
---|
60 | 64 | | } |
---|
61 | 65 | | |
---|
62 | 66 | | |
---|
63 | 67 | | |
---|
64 | | - | @Callable(q) |
---|
| 68 | + | @Callable(y) |
---|
65 | 69 | | func reserve (h) = { |
---|
66 | | - | let r = q.caller |
---|
67 | | - | if ((this != r)) |
---|
| 70 | + | let A = y.caller |
---|
| 71 | + | let B = toString(A) |
---|
| 72 | + | if ((this != A)) |
---|
68 | 73 | | then throw("Only self call are allowed") |
---|
69 | 74 | | else { |
---|
70 | | - | let x = invoke(o, "addReserve", [h], nil) |
---|
71 | | - | if ((x == x)) |
---|
| 75 | + | let C = invoke(r, "register", [h, B, s], nil) |
---|
| 76 | + | if ((C == C)) |
---|
72 | 77 | | then nil |
---|
73 | 78 | | else throw("Strict value is not equal to itself.") |
---|
74 | 79 | | } |
---|
| 80 | + | } |
---|
| 81 | + | |
---|
| 82 | + | |
---|
| 83 | + | |
---|
| 84 | + | @Callable(y) |
---|
| 85 | + | func exchange () = { |
---|
| 86 | + | let A = y.caller |
---|
| 87 | + | let B = toString(A) |
---|
| 88 | + | let D = y.payments[0] |
---|
| 89 | + | let E = valueOrErrorMessage(D.assetId, "Asset cannot be WAVES") |
---|
| 90 | + | let u = valueOrErrorMessage(assetInfo(E), "Invalid asset") |
---|
| 91 | + | if ((D.amount != 1)) |
---|
| 92 | + | then throw("Incorrect amount of asset") |
---|
| 93 | + | else if (t(u)) |
---|
| 94 | + | then throw("Asset in payment is not NFT") |
---|
| 95 | + | else { |
---|
| 96 | + | let F = a(r, k(u.name)) |
---|
| 97 | + | let G = toBytes(F) |
---|
| 98 | + | let H = v(A, G) |
---|
| 99 | + | if ((H == H)) |
---|
| 100 | + | then { |
---|
| 101 | + | let I = invoke(r, "reclaim", [u.name], nil) |
---|
| 102 | + | if ((I == I)) |
---|
| 103 | + | then nil |
---|
| 104 | + | else throw("Strict value is not equal to itself.") |
---|
| 105 | + | } |
---|
| 106 | + | else throw("Strict value is not equal to itself.") |
---|
| 107 | + | } |
---|
75 | 108 | | } |
---|
76 | 109 | | |
---|
77 | 110 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 5 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b))) |
---|
5 | 5 | | |
---|
6 | 6 | | |
---|
7 | 7 | | func d (b,c) = valueOrErrorMessage(getInteger(b, c), ((("Can't read '" + c) + "' at address ") + toString(b))) |
---|
8 | 8 | | |
---|
9 | 9 | | |
---|
10 | 10 | | func e (f) = valueOrErrorMessage(addressFromString(f), (("Can't parse address from '" + f) + "'")) |
---|
11 | 11 | | |
---|
12 | 12 | | |
---|
13 | | - | func g (h) = ("Reissued_" + h) |
---|
| 13 | + | func g (h,i,j) = ((((h + "_") + i) + "_") + j) |
---|
14 | 14 | | |
---|
15 | 15 | | |
---|
16 | | - | let i = "meedusAddress" |
---|
| 16 | + | func k (h) = g("Name", h, "token") |
---|
17 | 17 | | |
---|
18 | | - | let j = "registrarAddress" |
---|
19 | 18 | | |
---|
20 | | - | let k = "meedusInitTimestamp" |
---|
| 19 | + | let l = "meedusAddress" |
---|
21 | 20 | | |
---|
22 | | - | let l = a(this, i) |
---|
| 21 | + | let m = "registrarAddress" |
---|
23 | 22 | | |
---|
24 | | - | let m = e(l) |
---|
| 23 | + | let n = "meedusInitTimestamp" |
---|
25 | 24 | | |
---|
26 | | - | let n = a(this, j) |
---|
| 25 | + | let o = a(this, l) |
---|
27 | 26 | | |
---|
28 | | - | let o = e(n) |
---|
| 27 | + | let p = e(o) |
---|
29 | 28 | | |
---|
30 | | - | let p = d(this, k) |
---|
| 29 | + | let q = a(this, m) |
---|
31 | 30 | | |
---|
32 | | - | @Callable(q) |
---|
33 | | - | func init (l,n,p) = [StringEntry(i, l), StringEntry(j, n), IntegerEntry(k, p)] |
---|
| 31 | + | let r = e(q) |
---|
| 32 | + | |
---|
| 33 | + | let s = d(this, n) |
---|
| 34 | + | |
---|
| 35 | + | func t (u) = if (if (if ((u.quantity != 1)) |
---|
| 36 | + | then true |
---|
| 37 | + | else (u.issuer != p)) |
---|
| 38 | + | then true |
---|
| 39 | + | else (u.decimals != 0)) |
---|
| 40 | + | then true |
---|
| 41 | + | else (u.reissuable != false) |
---|
| 42 | + | |
---|
| 43 | + | |
---|
| 44 | + | func v (b,u) = { |
---|
| 45 | + | let w = invoke(this, "transfer", [b, u], nil) |
---|
| 46 | + | if ($isInstanceOf(w, "Boolean")) |
---|
| 47 | + | then { |
---|
| 48 | + | let x = w |
---|
| 49 | + | x |
---|
| 50 | + | } |
---|
| 51 | + | else throw("Invalid result for transfer") |
---|
| 52 | + | } |
---|
| 53 | + | |
---|
| 54 | + | |
---|
| 55 | + | @Callable(y) |
---|
| 56 | + | func init (o,q,s) = [StringEntry(l, o), StringEntry(m, q), IntegerEntry(n, s)] |
---|
34 | 57 | | |
---|
35 | 58 | | |
---|
36 | 59 | | |
---|
37 | | - | @Callable(q) |
---|
38 | | - | func exchange () = { |
---|
39 | | - | let r = q.caller |
---|
40 | | - | let s = toString(r) |
---|
41 | | - | let t = q.payments[0] |
---|
42 | | - | let u = valueOrErrorMessage(t.assetId, "Asset cannot be WAVES") |
---|
43 | | - | let v = valueOrErrorMessage(assetInfo(u), "Invalid asset") |
---|
44 | | - | if ((t.amount != 1)) |
---|
45 | | - | then throw("Incorrect amount of asset") |
---|
46 | | - | else if (if (if (if ((v.quantity != 1)) |
---|
47 | | - | then true |
---|
48 | | - | else (v.issuer != m)) |
---|
49 | | - | then true |
---|
50 | | - | else (v.decimals != 0)) |
---|
51 | | - | then true |
---|
52 | | - | else (v.reissuable == true)) |
---|
53 | | - | then throw("Asset in payment is not NFT") |
---|
54 | | - | else { |
---|
55 | | - | let w = invoke(o, "register", [v.name, s, p], nil) |
---|
56 | | - | if ((w == w)) |
---|
57 | | - | then nil |
---|
58 | | - | else throw("Strict value is not equal to itself.") |
---|
59 | | - | } |
---|
| 60 | + | @Callable(y) |
---|
| 61 | + | func transfer (z,u) = { |
---|
| 62 | + | let b = e(z) |
---|
| 63 | + | $Tuple2([ScriptTransfer(b, 1, u)], true) |
---|
60 | 64 | | } |
---|
61 | 65 | | |
---|
62 | 66 | | |
---|
63 | 67 | | |
---|
64 | | - | @Callable(q) |
---|
| 68 | + | @Callable(y) |
---|
65 | 69 | | func reserve (h) = { |
---|
66 | | - | let r = q.caller |
---|
67 | | - | if ((this != r)) |
---|
| 70 | + | let A = y.caller |
---|
| 71 | + | let B = toString(A) |
---|
| 72 | + | if ((this != A)) |
---|
68 | 73 | | then throw("Only self call are allowed") |
---|
69 | 74 | | else { |
---|
70 | | - | let x = invoke(o, "addReserve", [h], nil) |
---|
71 | | - | if ((x == x)) |
---|
| 75 | + | let C = invoke(r, "register", [h, B, s], nil) |
---|
| 76 | + | if ((C == C)) |
---|
72 | 77 | | then nil |
---|
73 | 78 | | else throw("Strict value is not equal to itself.") |
---|
74 | 79 | | } |
---|
| 80 | + | } |
---|
| 81 | + | |
---|
| 82 | + | |
---|
| 83 | + | |
---|
| 84 | + | @Callable(y) |
---|
| 85 | + | func exchange () = { |
---|
| 86 | + | let A = y.caller |
---|
| 87 | + | let B = toString(A) |
---|
| 88 | + | let D = y.payments[0] |
---|
| 89 | + | let E = valueOrErrorMessage(D.assetId, "Asset cannot be WAVES") |
---|
| 90 | + | let u = valueOrErrorMessage(assetInfo(E), "Invalid asset") |
---|
| 91 | + | if ((D.amount != 1)) |
---|
| 92 | + | then throw("Incorrect amount of asset") |
---|
| 93 | + | else if (t(u)) |
---|
| 94 | + | then throw("Asset in payment is not NFT") |
---|
| 95 | + | else { |
---|
| 96 | + | let F = a(r, k(u.name)) |
---|
| 97 | + | let G = toBytes(F) |
---|
| 98 | + | let H = v(A, G) |
---|
| 99 | + | if ((H == H)) |
---|
| 100 | + | then { |
---|
| 101 | + | let I = invoke(r, "reclaim", [u.name], nil) |
---|
| 102 | + | if ((I == I)) |
---|
| 103 | + | then nil |
---|
| 104 | + | else throw("Strict value is not equal to itself.") |
---|
| 105 | + | } |
---|
| 106 | + | else throw("Strict value is not equal to itself.") |
---|
| 107 | + | } |
---|
75 | 108 | | } |
---|
76 | 109 | | |
---|
77 | 110 | | |
---|