tx · 5R5BHKikDAGwFGHyA72uMjcsx5XfXsQJNRvZmsmcyxUB 3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S: -0.01400000 Waves 2021.03.26 23:42 [1455204] smart account 3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S > SELF 0.00000000 Waves
{ "type": 13, "id": "5R5BHKikDAGwFGHyA72uMjcsx5XfXsQJNRvZmsmcyxUB", "fee": 1400000, "feeAssetId": null, "timestamp": 1616791367112, "version": 2, "chainId": 84, "sender": "3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S", "senderPublicKey": "CgByewRUvLk7UtWSfRMLSYw4Ap2wT5dcdVYKideqDp9M", "proofs": [ "2mg1d45Fq2mdvF8rX4g2AbNZK7eaMa7MkvwwtR44hBUJ9A8W5Fub5jrLfMk4P4h4aK7AanAX8tLVNdoHtYxSq3mS" ], "script": "base64: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b3RhbEFtb3VudAUAAAADZmVlBAAAAA1keXpyYXB0QW1vdW50CQEAAAANdXNkblRvRHl6cmFwdAAAAAEFAAAABmFtb3VudAQAAAAIc2F2ZWRGZWUJAQAAAA5nZXRUb3RhbEZlZVVzZAAAAAAEAAAACHRvdGFsRmVlCQAAZAAAAAIFAAAACHNhdmVkRmVlBQAAAANmZWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADnRvdGFsRmVlVXNkS2V5BQAAAAh0b3RhbEZlZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADWR5enJhcHRBbW91bnQFAAAADmR5enJhcHRBc3NldElkBQAAAANuaWwAAAABaQEAAAAQc3dhcEV0aFRvRHl6cmFwdAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAt0b3RhbEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAApldGhBc3NldElkCQAAAgAAAAECAAAAKU9ubHkgV0VUSCB0b2tlbnMgYXJlIGFsbG93ZWQgZm9yIHN3YXBwaW5nBAAAAANmZWUJAQAAAAxnZXRGZWVBbW91bnQAAAABBQAAAAt0b3RhbEFtb3VudAQAAAAGYW1vdW50CQAAZQAAAAIFAAAAC3RvdGFsQW1vdW50BQAAAANmZWUEAAAACGV0aFByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAANb3JhY2xlQWRkcmVzcwUAAAANcHJpY2VPZkV0aEtleQIAAAAUVW5hYmxlIHRvIGxvYWQgcHJpY2UEAAAACnVzZG5BbW91bnQJAABrAAAAAwUAAAAGYW1vdW50BQAAAAhldGhQcmljZQAAAAAAAAAnEAQAAAANZHl6cmFwdEFtb3VudAkBAAAADXVzZG5Ub0R5enJhcHQAAAABBQAAAAp1c2RuQW1vdW50BAAAAAhzYXZlZEZlZQkBAAAADmdldFRvdGFsRmVlRXRoAAAAAAQAAAAIdG90YWxGZWUJAABkAAAAAgUAAAAIc2F2ZWRGZWUFAAAAA2ZlZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOdG90YWxGZWVFdGhLZXkFAAAACHRvdGFsRmVlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANZHl6cmFwdEFtb3VudAUAAAAOZHl6cmFwdEFzc2V0SWQFAAAAA25pbAAAAAFpAQAAABFzd2FwRHl6cmFwdFRvVXNkbgAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAt0b3RhbEFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAA5keXpyYXB0QXNzZXRJZAkAAAIAAAABAgAAACxPbmx5IERZWlJBUFQgdG9rZW5zIGFyZSBhbGxvd2VkIGZvciBzd2FwcGluZwQAAAADZmVlCQEAAAAMZ2V0RmVlQW1vdW50AAAAAQUAAAALdG90YWxBbW91bnQEAAAABmFtb3VudAkAAGUAAAACBQAAAAt0b3RhbEFtb3VudAUAAAADZmVlBAAAAAp1c2RuQW1vdW50CQEAAAANZHl6cmFwdFRvVXNkbgAAAAEFAAAABmFtb3VudAQAAAAIc2F2ZWRGZWUJAQAAABJnZXRUb3RhbEZlZUR5enJhcHQAAAAABAAAAAh0b3RhbEZlZQkAAGQAAAACBQAAAAhzYXZlZEZlZQUAAAADZmVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA50b3RhbEZlZVVzZEtleQUAAAAIdG90YWxGZWUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAp1c2RuQW1vdW50BQAAAAt1c2RuQXNzZXRJZAUAAAADbmlsAAAAAPEs+Hc=", "height": 1455204, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3sPLws5tXwicZQGq4hv1AaDf27Z369MFXcftqpGZsoHa Next: 2YNjFpGgKgw4E9zFmqoJ3auPoUMF72DbQ1qQtGd6gBTS Diff:
Old | New | Differences | |
---|---|---|---|
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | - | @Callable(u) | |
49 | + | func u (k) = { | |
50 | + | let t = valueOrErrorMessage(getInteger(f, d), "Unable to load price") | |
51 | + | fraction(k, t, 10000) | |
52 | + | } | |
53 | + | ||
54 | + | ||
55 | + | @Callable(v) | |
50 | 56 | func test () = { | |
51 | - | let | |
52 | - | let | |
53 | - | let k = | |
54 | - | if (( | |
57 | + | let w = value(v.payments[0]) | |
58 | + | let x = w.assetId | |
59 | + | let k = w.amount | |
60 | + | if ((x == g)) | |
55 | 61 | then throw(("its a dyzrapt. Amount=" + toString(k))) | |
56 | 62 | else throw("its not a dyzrapt") | |
57 | 63 | } | |
58 | 64 | ||
59 | 65 | ||
60 | 66 | ||
61 | - | @Callable( | |
67 | + | @Callable(v) | |
62 | 68 | func swapUsdnToDyzrapt () = { | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | if (( | |
67 | - | then throw("Only | |
69 | + | let w = value(v.payments[0]) | |
70 | + | let x = w.assetId | |
71 | + | let y = w.amount | |
72 | + | if ((x != i)) | |
73 | + | then throw("Only USDN tokens are allowed for swapping") | |
68 | 74 | else { | |
69 | - | let l = j( | |
70 | - | let k = ( | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | [IntegerEntry(b, | |
75 | + | let l = j(y) | |
76 | + | let k = (y - l) | |
77 | + | let z = s(k) | |
78 | + | let A = q() | |
79 | + | let B = (A + l) | |
80 | + | [IntegerEntry(b, B), ScriptTransfer(v.caller, z, g)] | |
75 | 81 | } | |
76 | 82 | } | |
77 | 83 | ||
78 | 84 | ||
79 | 85 | ||
80 | - | @Callable( | |
86 | + | @Callable(v) | |
81 | 87 | func swapEthToDyzrapt () = { | |
82 | - | let | |
83 | - | let | |
84 | - | let | |
85 | - | if (( | |
86 | - | then throw("Only | |
88 | + | let w = value(v.payments[0]) | |
89 | + | let x = w.assetId | |
90 | + | let y = w.amount | |
91 | + | if ((x != h)) | |
92 | + | then throw("Only WETH tokens are allowed for swapping") | |
87 | 93 | else { | |
88 | - | let l = j(x) | |
89 | - | let k = (x - l) | |
90 | - | let B = valueOrErrorMessage(getInteger(f, e), "Unable to load price") | |
91 | - | let C = fraction(k, B, 10000) | |
92 | - | let y = s(C) | |
93 | - | let z = p() | |
94 | - | let A = (z + l) | |
95 | - | [IntegerEntry(a, A), ScriptTransfer(u.caller, y, g)] | |
94 | + | let l = j(y) | |
95 | + | let k = (y - l) | |
96 | + | let C = valueOrErrorMessage(getInteger(f, e), "Unable to load price") | |
97 | + | let D = fraction(k, C, 10000) | |
98 | + | let z = s(D) | |
99 | + | let A = p() | |
100 | + | let B = (A + l) | |
101 | + | [IntegerEntry(a, B), ScriptTransfer(v.caller, z, g)] | |
102 | + | } | |
103 | + | } | |
104 | + | ||
105 | + | ||
106 | + | ||
107 | + | @Callable(v) | |
108 | + | func swapDyzraptToUsdn () = { | |
109 | + | let w = value(v.payments[0]) | |
110 | + | let x = w.assetId | |
111 | + | let y = w.amount | |
112 | + | if ((x != g)) | |
113 | + | then throw("Only DYZRAPT tokens are allowed for swapping") | |
114 | + | else { | |
115 | + | let l = j(y) | |
116 | + | let k = (y - l) | |
117 | + | let D = u(k) | |
118 | + | let A = r() | |
119 | + | let B = (A + l) | |
120 | + | [IntegerEntry(b, B), ScriptTransfer(v.caller, D, i)] | |
96 | 121 | } | |
97 | 122 | } | |
98 | 123 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "total_fee_eth" | |
5 | 5 | ||
6 | 6 | let b = "total_fee_usd" | |
7 | 7 | ||
8 | 8 | let c = "total_fee_dyzrapt" | |
9 | 9 | ||
10 | 10 | let d = "dyz" | |
11 | 11 | ||
12 | 12 | let e = "eth" | |
13 | 13 | ||
14 | 14 | let f = Address(base58'3N7G2kVtBTh94aEnDHQ9dpi4EdsDxAiDXjB') | |
15 | 15 | ||
16 | 16 | let g = base58'Bi4jxKEFjjYG2emeyxZfpkVMS88N7uAogHNsi1urkoJA' | |
17 | 17 | ||
18 | 18 | let h = base58'3JJkzB4pFXcqdJvC9TcV8ys1FLgesr5SxbhmykkpceQp' | |
19 | 19 | ||
20 | 20 | let i = base58'9Nf5wpj6jds3VRZKDryp6Dtf3R9d8MdbjNhencLogCr5' | |
21 | 21 | ||
22 | 22 | func j (k) = { | |
23 | 23 | let l = fraction(k, 3, 100) | |
24 | 24 | l | |
25 | 25 | } | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func m (n) = { | |
29 | 29 | let o = valueOrElse(getInteger(this, n), 0) | |
30 | 30 | o | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func p () = m(a) | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func q () = m(b) | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | func r () = m(c) | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func s (k) = { | |
44 | 44 | let t = valueOrErrorMessage(getInteger(f, d), "Unable to load price") | |
45 | 45 | fraction(k, 10000, t) | |
46 | 46 | } | |
47 | 47 | ||
48 | 48 | ||
49 | - | @Callable(u) | |
49 | + | func u (k) = { | |
50 | + | let t = valueOrErrorMessage(getInteger(f, d), "Unable to load price") | |
51 | + | fraction(k, t, 10000) | |
52 | + | } | |
53 | + | ||
54 | + | ||
55 | + | @Callable(v) | |
50 | 56 | func test () = { | |
51 | - | let | |
52 | - | let | |
53 | - | let k = | |
54 | - | if (( | |
57 | + | let w = value(v.payments[0]) | |
58 | + | let x = w.assetId | |
59 | + | let k = w.amount | |
60 | + | if ((x == g)) | |
55 | 61 | then throw(("its a dyzrapt. Amount=" + toString(k))) | |
56 | 62 | else throw("its not a dyzrapt") | |
57 | 63 | } | |
58 | 64 | ||
59 | 65 | ||
60 | 66 | ||
61 | - | @Callable( | |
67 | + | @Callable(v) | |
62 | 68 | func swapUsdnToDyzrapt () = { | |
63 | - | let | |
64 | - | let | |
65 | - | let | |
66 | - | if (( | |
67 | - | then throw("Only | |
69 | + | let w = value(v.payments[0]) | |
70 | + | let x = w.assetId | |
71 | + | let y = w.amount | |
72 | + | if ((x != i)) | |
73 | + | then throw("Only USDN tokens are allowed for swapping") | |
68 | 74 | else { | |
69 | - | let l = j( | |
70 | - | let k = ( | |
71 | - | let | |
72 | - | let | |
73 | - | let | |
74 | - | [IntegerEntry(b, | |
75 | + | let l = j(y) | |
76 | + | let k = (y - l) | |
77 | + | let z = s(k) | |
78 | + | let A = q() | |
79 | + | let B = (A + l) | |
80 | + | [IntegerEntry(b, B), ScriptTransfer(v.caller, z, g)] | |
75 | 81 | } | |
76 | 82 | } | |
77 | 83 | ||
78 | 84 | ||
79 | 85 | ||
80 | - | @Callable( | |
86 | + | @Callable(v) | |
81 | 87 | func swapEthToDyzrapt () = { | |
82 | - | let | |
83 | - | let | |
84 | - | let | |
85 | - | if (( | |
86 | - | then throw("Only | |
88 | + | let w = value(v.payments[0]) | |
89 | + | let x = w.assetId | |
90 | + | let y = w.amount | |
91 | + | if ((x != h)) | |
92 | + | then throw("Only WETH tokens are allowed for swapping") | |
87 | 93 | else { | |
88 | - | let l = j(x) | |
89 | - | let k = (x - l) | |
90 | - | let B = valueOrErrorMessage(getInteger(f, e), "Unable to load price") | |
91 | - | let C = fraction(k, B, 10000) | |
92 | - | let y = s(C) | |
93 | - | let z = p() | |
94 | - | let A = (z + l) | |
95 | - | [IntegerEntry(a, A), ScriptTransfer(u.caller, y, g)] | |
94 | + | let l = j(y) | |
95 | + | let k = (y - l) | |
96 | + | let C = valueOrErrorMessage(getInteger(f, e), "Unable to load price") | |
97 | + | let D = fraction(k, C, 10000) | |
98 | + | let z = s(D) | |
99 | + | let A = p() | |
100 | + | let B = (A + l) | |
101 | + | [IntegerEntry(a, B), ScriptTransfer(v.caller, z, g)] | |
102 | + | } | |
103 | + | } | |
104 | + | ||
105 | + | ||
106 | + | ||
107 | + | @Callable(v) | |
108 | + | func swapDyzraptToUsdn () = { | |
109 | + | let w = value(v.payments[0]) | |
110 | + | let x = w.assetId | |
111 | + | let y = w.amount | |
112 | + | if ((x != g)) | |
113 | + | then throw("Only DYZRAPT tokens are allowed for swapping") | |
114 | + | else { | |
115 | + | let l = j(y) | |
116 | + | let k = (y - l) | |
117 | + | let D = u(k) | |
118 | + | let A = r() | |
119 | + | let B = (A + l) | |
120 | + | [IntegerEntry(b, B), ScriptTransfer(v.caller, D, i)] | |
96 | 121 | } | |
97 | 122 | } | |
98 | 123 | ||
99 | 124 |
github/deemru/w8io/873ac7e 31.82 ms ◑