tx · EPm2tt48aCwdS6tqKXadRcRCaUZvxXB8BUAkW5yQ3sdZ 3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta: -0.01000000 Waves 2023.11.30 13:42 [2866038] smart account 3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta > SELF 0.00000000 Waves
{ "type": 13, "id": "EPm2tt48aCwdS6tqKXadRcRCaUZvxXB8BUAkW5yQ3sdZ", "fee": 1000000, "feeAssetId": null, "timestamp": 1701340945591, "version": 2, "chainId": 84, "sender": "3N9b7vExDf2qqZt2xG9FUsca7iwLVuih1Ta", "senderPublicKey": "4rSYGN3SSXzknh6jLyLqqGdGor584DXdjdP2BAbz7kgt", "proofs": [ "otT5VeVECVy9WAacgoWjUYW9EaGubyP5QuNavSSDiWUsAKY1CKDW9bDKtzcub1dqAJRhXRs5cpY5hri27R5Rzsx" ], "script": "base64:AAIFAAAAAAAAAAsIAhIFCgMIAQgSAAAAAAoBAAAACmtleUFzc2V0SWQAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgIAAAAPJXMlc19fYXNzZXRJZF9fBQAAAAdhZGRyZXNzAQAAAAlrZXlBbW91bnQAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgIAAAAOJXMlc19fYW1vdW50X18FAAAAB2FkZHJlc3MBAAAACmtleVBhcnRuZXIAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgIAAAAPJXMlc19fcGFydG5lcl9fBQAAAAdhZGRyZXNzAQAAABBrZXlXYW50ZWRBc3NldElkAAAAAQAAAAdhZGRyZXNzCQABLAAAAAICAAAAFSVzJXNfX3dhbnRlZEFzc2V0SWRfXwUAAAAHYWRkcmVzcwEAAAAPa2V5V2FudGVkQW1vdW50AAAAAQAAAAdhZGRyZXNzCQABLAAAAAICAAAAFCVzJXNfX3dhbnRlZEFtb3VudF9fBQAAAAdhZGRyZXNzAQAAAAV0b1N0cgAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAUAAAAEdW5pdAIAAAAFV0FWRVMJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAHYXNzZXRJZAEAAAAHZnJvbVN0cgAAAAEAAAAKYXNzZXRJZFN0cgMJAAAAAAAAAgUAAAAKYXNzZXRJZFN0cgIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAKYXNzZXRJZFN0cgEAAAASY3Jvc3NDaGVja0Fzc2V0SWRzAAAABQAAAA5wYXJ0bmVyQWRkcmVzcwAAABBteU9mZmVyZWRBc3NldElkAAAAD215V2FudGVkQXNzZXRJZAAAABVwYXJ0bmVyT2ZmZXJlZEFzc2V0SWQAAAAUcGFydG5lcldhbnRlZEFzc2V0SWQDAwkBAAAAAiE9AAAAAgUAAAAVcGFydG5lck9mZmVyZWRBc3NldElkBQAAAA9teVdhbnRlZEFzc2V0SWQGCQEAAAACIT0AAAACBQAAABRwYXJ0bmVyV2FudGVkQXNzZXRJZAUAAAAQbXlPZmZlcmVkQXNzZXRJZAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAAC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RGVsZXRlRW50cnkAAAABCQEAAAAJa2V5QW1vdW50AAAAAQUAAAAOcGFydG5lckFkZHJlc3MJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleVBhcnRuZXIAAAABBQAAAA5wYXJ0bmVyQWRkcmVzcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAQa2V5V2FudGVkQXNzZXRJZAAAAAEFAAAADnBhcnRuZXJBZGRyZXNzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAA9rZXlXYW50ZWRBbW91bnQAAAABBQAAAA5wYXJ0bmVyQWRkcmVzcwUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5QXNzZXRJZAAAAAEFAAAABmNhbGxlcgkBAAAABXRvU3RyAAAAAQUAAAAJbXlBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAJa2V5QW1vdW50AAAAAQUAAAAGY2FsbGVyBQAAAAhteUFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAKa2V5UGFydG5lcgAAAAEFAAAABmNhbGxlcgUAAAAOcGFydG5lckFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleVdhbnRlZEFzc2V0SWQAAAABBQAAAAZjYWxsZXIFAAAADXdhbnRlZEFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9rZXlXYW50ZWRBbW91bnQAAAABBQAAAAZjYWxsZXIFAAAACndhbnRBbW91bnQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAGY2FuY2VsAAAAAAQAAAAGY2FsbGVyCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAKYXNzZXRJZEtleQkBAAAACmtleUFzc2V0SWQAAAABBQAAAAZjYWxsZXIEAAAACmFzc2V0SWRSYXcJAAQdAAAAAgUAAAAEdGhpcwUAAAAKYXNzZXRJZEtleQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEFAAAACmFzc2V0SWRSYXcJAAACAAAAAQIAAAAdWW91IGRvbid0IGhhdmUgYW4gYWN0aXZlIGRlYWwEAAAACmFzc2V0SWRTdHIJAQAAAAV2YWx1ZQAAAAEFAAAACmFzc2V0SWRSYXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQEAAAAFdmFsdWUAAAABCQAEGgAAAAIFAAAABHRoaXMJAQAAAAlrZXlBbW91bnQAAAABBQAAAAZjYWxsZXIJAQAAAAdmcm9tU3RyAAAAAQUAAAAKYXNzZXRJZFN0cgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAphc3NldElkS2V5CQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAAAlrZXlBbW91bnQAAAABBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAACmtleVBhcnRuZXIAAAABBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAEGtleVdhbnRlZEFzc2V0SWQAAAABBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAD2tleVdhbnRlZEFtb3VudAAAAAEFAAAABmNhbGxlcgUAAAADbmlsAAAAAMgeQF8=", "height": 2866038, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6r1unoV2kdnKWVnuAwc4My1ZJQKufKrQhwhsikjwJNqw Next: FsxsWNHLDenjoguS3T1wJwoGzsEwTodGV1C9idxeu8qf Diff:
Old | New | Differences | |
---|---|---|---|
102 | 102 | } | |
103 | 103 | ||
104 | 104 | ||
105 | - | @Verifier(J) | |
106 | - | func K () = true | |
107 | - |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b) = ("%s%s__assetId__" + b) | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | func c (b) = ("%s%s__amount__" + b) | |
8 | 8 | ||
9 | 9 | ||
10 | 10 | func d (b) = ("%s%s__partner__" + b) | |
11 | 11 | ||
12 | 12 | ||
13 | 13 | func e (b) = ("%s%s__wantedAssetId__" + b) | |
14 | 14 | ||
15 | 15 | ||
16 | 16 | func f (b) = ("%s%s__wantedAmount__" + b) | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func g (h) = if ((h == unit)) | |
20 | 20 | then "WAVES" | |
21 | 21 | else toBase58String(value(h)) | |
22 | 22 | ||
23 | 23 | ||
24 | 24 | func i (j) = if ((j == "WAVES")) | |
25 | 25 | then unit | |
26 | 26 | else fromBase58String(j) | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func k (l,m,n,o,p) = if (if ((o != n)) | |
30 | 30 | then true | |
31 | 31 | else (p != m)) | |
32 | 32 | then throw(((((((((("AssetIds don't match: you want " + n) + " and pay ") + m) + ", but ") + l) + " wants ") + p) + " and pays ") + o)) | |
33 | 33 | else true | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func q (l,r,s,t,u) = if (if ((t != s)) | |
37 | 37 | then true | |
38 | 38 | else (u != r)) | |
39 | 39 | then throw(((((((((("Amounts don't match: you want " + toString(s)) + " and pay ") + toString(r)) + ", but ") + l) + " wants ") + toString(u)) + " and pays ") + toString(t))) | |
40 | 40 | else true | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func v (w) = { | |
44 | 44 | let x = i(w) | |
45 | 45 | if (if ((x != unit)) | |
46 | 46 | then (assetInfo(value(x)) == unit) | |
47 | 47 | else false) | |
48 | 48 | then throw("Invalid wantAssetId: assetInfo missing") | |
49 | 49 | else g(x) | |
50 | 50 | } | |
51 | 51 | ||
52 | 52 | ||
53 | 53 | @Callable(y) | |
54 | 54 | func escrow (w,z,l) = { | |
55 | 55 | let A = toString(y.caller) | |
56 | 56 | if (isDefined(getString(this, a(A)))) | |
57 | 57 | then throw("You already have an active deal, please cancel it first") | |
58 | 58 | else if ((size(y.payments) != 1)) | |
59 | 59 | then throw("Exactly 1 payment expected") | |
60 | 60 | else { | |
61 | 61 | let B = addressFromStringValue(l) | |
62 | 62 | if ((B == B)) | |
63 | 63 | then { | |
64 | 64 | let C = v(w) | |
65 | 65 | if ((0 >= z)) | |
66 | 66 | then throw("Non-positive wantAmount") | |
67 | 67 | else { | |
68 | 68 | let D = getString(this, a(l)) | |
69 | 69 | let E = value(y.payments[0]).assetId | |
70 | 70 | let F = value(y.payments[0]).amount | |
71 | 71 | if (isDefined(D)) | |
72 | 72 | then if ((value(getString(this, d(l))) != A)) | |
73 | 73 | then throw(("You are not a partner of " + l)) | |
74 | 74 | else { | |
75 | 75 | let G = if (k(l, g(E), C, value(D), value(getString(this, e(l))))) | |
76 | 76 | then q(l, F, z, value(getInteger(this, c(l))), value(getInteger(this, f(l)))) | |
77 | 77 | else false | |
78 | 78 | if ((G == G)) | |
79 | 79 | then [ScriptTransfer(B, F, E), ScriptTransfer(y.caller, z, i(C)), DeleteEntry(a(l)), DeleteEntry(c(l)), DeleteEntry(d(l)), DeleteEntry(e(l)), DeleteEntry(f(l))] | |
80 | 80 | else throw("Strict value is not equal to itself.") | |
81 | 81 | } | |
82 | 82 | else [StringEntry(a(A), g(E)), IntegerEntry(c(A), F), StringEntry(d(A), l), StringEntry(e(A), C), IntegerEntry(f(A), z)] | |
83 | 83 | } | |
84 | 84 | } | |
85 | 85 | else throw("Strict value is not equal to itself.") | |
86 | 86 | } | |
87 | 87 | } | |
88 | 88 | ||
89 | 89 | ||
90 | 90 | ||
91 | 91 | @Callable(y) | |
92 | 92 | func cancel () = { | |
93 | 93 | let A = toString(y.caller) | |
94 | 94 | let H = a(A) | |
95 | 95 | let I = getString(this, H) | |
96 | 96 | if (!(isDefined(I))) | |
97 | 97 | then throw("You don't have an active deal") | |
98 | 98 | else { | |
99 | 99 | let j = value(I) | |
100 | 100 | [ScriptTransfer(y.caller, value(getInteger(this, c(A))), i(j)), DeleteEntry(H), DeleteEntry(c(A)), DeleteEntry(d(A)), DeleteEntry(e(A)), DeleteEntry(f(A))] | |
101 | 101 | } | |
102 | 102 | } | |
103 | 103 | ||
104 | 104 | ||
105 | - | @Verifier(J) | |
106 | - | func K () = true | |
107 | - |
github/deemru/w8io/169f3d6 41.77 ms ◑![]()