tx · H3Ps2DpcnSkvWMZwgPrUc7AH59fe5ZoA4KM1MTX6on4C
3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S: -0.01400000 Waves
2021.04.03 20:52 [1466585] smart account 3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S > SELF 0.00000000 Waves
{
"type": 13,
"id": "H3Ps2DpcnSkvWMZwgPrUc7AH59fe5ZoA4KM1MTX6on4C",
"fee": 1400000,
"feeAssetId": null,
"timestamp": 1617472364134,
"version": 2,
"chainId": 84,
"sender": "3MwLcJy3MSb2kq6dUaUR5uBgm8zCKZMjz2S",
"senderPublicKey": "CgByewRUvLk7UtWSfRMLSYw4Ap2wT5dcdVYKideqDp9M",
"proofs": [
"46FJDGJhUfGrUERF4brd5cVnWRGi94JivuTHoFGikr4cYXxdMLWq9kU1fGwPoK7gpP9xxAfFSJ5FJizg85CrjaiY"
],
"script": "base64:AAIEAAAAAAAAAAYIAhIAEgAAAAAVAAAAABJ1c2RuRHl6QUJhbGFuY2VLZXkCAAAAGHVzZG5fZHl6X2FfYXNzZXRfYmFsYW5jZQAAAAASdXNkbkR5ekJCYWxhbmNlS2V5AgAAABh1c2RuX2R5el9iX2Fzc2V0X2JhbGFuY2UAAAAAEWV0aER5ekFCYWxhbmNlS2V5AgAAABdldGhfZHl6X2FfYXNzZXRfYmFsYW5jZQAAAAARZXRoRHl6QkJhbGFuY2VLZXkCAAAAF2V0aF9keXpfYl9hc3NldF9iYWxhbmNlAAAAABZ1c2RuRHl6UGFpcklzQWN0aXZlS2V5AgAAABJ1c2RuX2R5el9pc19hY3RpdmUAAAAAFWV0aER5elBhaXJJc0FjdGl2ZUtleQIAAAARZXRoX2R5el9pc19hY3RpdmUAAAAABmZlZUtleQIAAAADZmVlAAAAAA50b3RhbEZlZUV0aEtleQIAAAANdG90YWxfZmVlX2V0aAAAAAAOdG90YWxGZWVVc2RLZXkCAAAADXRvdGFsX2ZlZV91c2QAAAAAEnRvdGFsRmVlRHl6cmFwdEtleQIAAAARdG90YWxfZmVlX2R5enJhcHQAAAAADmR5enJhcHRBc3NldElkAQAAACCfGelz2SbvUEeIZho/f6Oy8jCePI0T0A9AnjyThKcEIwAAAAAKZXRoQXNzZXRJZAEAAAAgIiZTupKb/VWA3cKsc32NK0UPa7RwDiAbP3qNxoLjC6EAAAAAC3VzZG5Bc3NldElkAQAAACB8acFrZHCAdCRSG4jV7SN/J1UZqM1pl6GooK7vYeB3wgAAAAAOYWRtaW5QdWJsaWNLZXkBAAAAIGfOVMHFqmj5nqO3eXl5bDi8xhpqKeF9+P1BMLNJb5pZAAAAAApmZWVBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUvj/uzYkPvAWmBY0l0o79qoW9wh0kW3OWAQAAABRnZXRJbnRLZXlEYXRhT3JFcnJvcgAAAAEAAAADa2V5BAAAAAF2CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AgAAABJ1bmFibGUgdG8gcmVhZCBrZXkFAAAAAXYBAAAADWdldEludEtleURhdGEAAAABAAAAA2tleQQAAAABdgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkAAAAAAAAAAAAFAAAAAXYBAAAAEGdldFRvdGFsRmVlQnlLZXkAAAABAAAAA2tleQkBAAAADWdldEludEtleURhdGEAAAABBQAAAANrZXkBAAAADGdldEZlZUFtb3VudAAAAAEAAAAGYW1vdW50BAAAAANmZWUJAQAAABRnZXRJbnRLZXlEYXRhT3JFcnJvcgAAAAEFAAAABmZlZUtleQQAAAAJZmVlQW1vdW50CQAAawAAAAMFAAAABmFtb3VudAUAAAADZmVlAAAAAAAAACcQBQAAAAlmZWVBbW91bnQBAAAAEmdldEZlZUtleUJ5QXNzZXRJZAAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAUAAAALdXNkbkFzc2V0SWQFAAAADnRvdGFsRmVlVXNkS2V5AwkAAAAAAAACBQAAAAdhc3NldElkBQAAAApldGhBc3NldElkBQAAAA50b3RhbEZlZUV0aEtleQMJAAAAAAAAAgUAAAAHYXNzZXRJZAUAAAAOZHl6cmFwdEFzc2V0SWQFAAAAEnRvdGFsRmVlRHl6cmFwdEtleQkAAAIAAAABAgAAABhJbmNvcnJlY3QgYXNzZXQgYXR0YWNoZWQBAAAAEGdldFVzZG5EeXpBbW91bnQAAAACAAAAB2Fzc2V0SWQAAAAGYW1vdW50BAAAAAlmZWVBbW91bnQJAQAAAAxnZXRGZWVBbW91bnQAAAABBQAAAAZhbW91bnQEAAAAEGFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgUAAAAGYW1vdW50BQAAAAlmZWVBbW91bnQEAAAACGJhbGFuY2VBCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABJ1c2RuRHl6QUJhbGFuY2VLZXkEAAAACGJhbGFuY2VCCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAABJ1c2RuRHl6QkJhbGFuY2VLZXkDCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAAC3VzZG5Bc3NldElkBAAAAAdyQW1vdW50CQAAawAAAAMFAAAACGJhbGFuY2VCBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZAAAAAIFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAACGJhbGFuY2VBBAAAAAhyQXNzZXRJZAUAAAAOZHl6cmFwdEFzc2V0SWQEAAAAC25ld0JhbGFuY2VBCQAAZAAAAAIFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAACGJhbGFuY2VBBAAAAAtuZXdCYWxhbmNlQgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAAHckFtb3VudAkABRcAAAAFBQAAAAlmZWVBbW91bnQFAAAAB3JBbW91bnQFAAAACHJBc3NldElkBQAAAAtuZXdCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUIDCQAAAAAAAAIFAAAAB2Fzc2V0SWQFAAAADmR5enJhcHRBc3NldElkBAAAAAdyQW1vdW50CQAAawAAAAMFAAAACGJhbGFuY2VBBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZAAAAAIFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAACGJhbGFuY2VCBAAAAAhyQXNzZXRJZAUAAAALdXNkbkFzc2V0SWQEAAAAC25ld0JhbGFuY2VBCQAAZQAAAAIFAAAACGJhbGFuY2VBBQAAAAdyQW1vdW50BAAAAAtuZXdCYWxhbmNlQgkAAGQAAAACBQAAAAhiYWxhbmNlQgUAAAAQYW1vdW50V2l0aG91dEZlZQkABRcAAAAFBQAAAAlmZWVBbW91bnQFAAAAB3JBbW91bnQFAAAACHJBc3NldElkBQAAAAtuZXdCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUIJAAACAAAAAQIAAAAYSW5jb3JyZWN0IGFzc2V0IGF0dGFjaGVkAAAAAgAAAAFpAQAAAA9pbml0VXNkbkR5elBhaXIAAAAAAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQbAAAAAgUAAAAEdGhpcwUAAAAWdXNkbkR5elBhaXJJc0FjdGl2ZUtleQkAAAIAAAABAgAAABZQYWlyIGlzIGFscmVhZHkgYWN0aXZlAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAA5hZG1pblB1YmxpY0tleQkAAAIAAAABAgAAABxPbmx5IGFkbWluIGNhbiBhY3RpdmF0ZSBwYWlyBAAAAAskdDAyOTc1MzA1MgkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACnBtdEFtb3VudEEIBQAAAAskdDAyOTc1MzA1MgAAAAJfMQQAAAALcG10QXNzZXRJZEEIBQAAAAskdDAyOTc1MzA1MgAAAAJfMgQAAAALJHQwMzA2MTMxMzgJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAdhc3NldElkBAAAAApwbXRBbW91bnRCCAUAAAALJHQwMzA2MTMxMzgAAAACXzEEAAAAC3BtdEFzc2V0SWRCCAUAAAALJHQwMzA2MTMxMzgAAAACXzIDCQEAAAACIT0AAAACBQAAAAtwbXRBc3NldElkQQUAAAALdXNkbkFzc2V0SWQJAAACAAAAAQIAAAAVQSBhc3NldCBpcyBub3QgYSB1c2RuAwkBAAAAAiE9AAAAAgUAAAALcG10QXNzZXRJZEIFAAAADmR5enJhcHRBc3NldElkCQAAAgAAAAECAAAAGUIgIGFzc2V0IGlzIG5vdCBhIGR5enJ1cHQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAAFnVzZG5EeXpQYWlySXNBY3RpdmVLZXkGCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ1c2RuRHl6QUJhbGFuY2VLZXkFAAAACnBtdEFtb3VudEEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEnVzZG5EeXpCQmFsYW5jZUtleQUAAAAKcG10QW1vdW50QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAGZmVlS2V5AAAAAAAAAAEsBQAAAANuaWwAAAABaQEAAAAPZXhjaGFuZ2VVc2RuRHl6AAAAAAMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQbAAAAAgUAAAAEdGhpcwUAAAAWdXNkbkR5elBhaXJJc0FjdGl2ZUtleQkAAAIAAAABAgAAABJQYWlyIGlzIG5vdCBhY3RpdmUEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAZhbW91bnQIBQAAAANwbXQAAAAGYW1vdW50AwMJAQAAAAIhPQAAAAIFAAAAB2Fzc2V0SWQFAAAAC3VzZG5Bc3NldElkCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAA5keXpyYXB0QXNzZXRJZAcJAAACAAAAAQIAAAAkT25seSB1c2RuIGFuZCBkeXpydXB0IGFyZSBzdXBwb3J0aW5nBAAAAAskdDA0MDIwNDExNgkBAAAAEGdldFVzZG5EeXpBbW91bnQAAAACBQAAAAdhc3NldElkBQAAAAZhbW91bnQEAAAACWZlZUFtb3VudAgFAAAACyR0MDQwMjA0MTE2AAAAAl8xBAAAAAdyQW1vdW50CAUAAAALJHQwNDAyMDQxMTYAAAACXzIEAAAACHJBc3NldElkCAUAAAALJHQwNDAyMDQxMTYAAAACXzMEAAAAC25ld0JhbGFuY2VBCAUAAAALJHQwNDAyMDQxMTYAAAACXzQEAAAAC25ld0JhbGFuY2VCCAUAAAALJHQwNDAyMDQxMTYAAAACXzUEAAAAC3RvdGFsRmVlS2V5CQEAAAASZ2V0RmVlS2V5QnlBc3NldElkAAAAAQUAAAAHYXNzZXRJZAQAAAAIdG90YWxGZWUJAABkAAAAAgkBAAAAEGdldFRvdGFsRmVlQnlLZXkAAAABBQAAAAt0b3RhbEZlZUtleQUAAAAJZmVlQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ1c2RuRHl6QUJhbGFuY2VLZXkFAAAAC25ld0JhbGFuY2VBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJ1c2RuRHl6QkJhbGFuY2VLZXkFAAAAC25ld0JhbGFuY2VCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAt0b3RhbEZlZUtleQUAAAAIdG90YWxGZWUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAKZmVlQWRkcmVzcwUAAAAJZmVlQW1vdW50BQAAAAdhc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAHckFtb3VudAUAAAAIckFzc2V0SWQFAAAAA25pbAAAAADm6rN6",
"height": 1466585,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 4dfpS3GLNgEQDED9XT9LX6zYJ2u1mggW8XRWXmU81PSn
Next: 2oQ3QJHoAg5mVsXyP6N3VMg76M81bCkePLi3KJ1oU9KX
Diff:
Old | New | | Differences |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "fee" |
---|
17 | 17 | | |
---|
18 | | - | let h = base58'Bi4jxKEFjjYG2emeyxZfpkVMS88N7uAogHNsi1urkoJA' |
---|
| 18 | + | let h = "total_fee_eth" |
---|
19 | 19 | | |
---|
20 | | - | let i = base58'3JJkzB4pFXcqdJvC9TcV8ys1FLgesr5SxbhmykkpceQp' |
---|
| 20 | + | let i = "total_fee_usd" |
---|
21 | 21 | | |
---|
22 | | - | let j = base58'9Nf5wpj6jds3VRZKDryp6Dtf3R9d8MdbjNhencLogCr5' |
---|
| 22 | + | let j = "total_fee_dyzrapt" |
---|
23 | 23 | | |
---|
24 | | - | let k = base58'7zDUSbBXZtec3E333b1fC2wR2MPrnzh69ZrH3rwpQj9S' |
---|
| 24 | + | let k = base58'Bi4jxKEFjjYG2emeyxZfpkVMS88N7uAogHNsi1urkoJA' |
---|
25 | 25 | | |
---|
26 | | - | let l = Address(base58'3N7G2kVtBTh94aEnDHQ9dpi4EdsDxAiDXjB') |
---|
| 26 | + | let l = base58'3JJkzB4pFXcqdJvC9TcV8ys1FLgesr5SxbhmykkpceQp' |
---|
27 | 27 | | |
---|
28 | | - | func m (n) = { |
---|
29 | | - | let o = valueOrErrorMessage(getInteger(this, n), "unable to read key") |
---|
30 | | - | o |
---|
| 28 | + | let m = base58'9Nf5wpj6jds3VRZKDryp6Dtf3R9d8MdbjNhencLogCr5' |
---|
| 29 | + | |
---|
| 30 | + | let n = base58'7zDUSbBXZtec3E333b1fC2wR2MPrnzh69ZrH3rwpQj9S' |
---|
| 31 | + | |
---|
| 32 | + | let o = Address(base58'3N7G2kVtBTh94aEnDHQ9dpi4EdsDxAiDXjB') |
---|
| 33 | + | |
---|
| 34 | + | func p (q) = { |
---|
| 35 | + | let r = valueOrErrorMessage(getInteger(this, q), "unable to read key") |
---|
| 36 | + | r |
---|
31 | 37 | | } |
---|
32 | 38 | | |
---|
33 | 39 | | |
---|
34 | | - | func p (q) = { |
---|
35 | | - | let r = m(g) |
---|
36 | | - | let s = fraction(q, r, 10000) |
---|
37 | | - | s |
---|
| 40 | + | func s (q) = { |
---|
| 41 | + | let r = valueOrElse(getInteger(this, q), 0) |
---|
| 42 | + | r |
---|
38 | 43 | | } |
---|
39 | 44 | | |
---|
40 | 45 | | |
---|
41 | | - | func t (u,q) = { |
---|
42 | | - | let s = p(q) |
---|
43 | | - | let v = (q - s) |
---|
44 | | - | let w = getIntegerValue(this, a) |
---|
45 | | - | let x = getIntegerValue(this, b) |
---|
46 | | - | if ((u == j)) |
---|
| 46 | + | func t (q) = s(q) |
---|
| 47 | + | |
---|
| 48 | + | |
---|
| 49 | + | func u (v) = { |
---|
| 50 | + | let w = p(g) |
---|
| 51 | + | let x = fraction(v, w, 10000) |
---|
| 52 | + | x |
---|
| 53 | + | } |
---|
| 54 | + | |
---|
| 55 | + | |
---|
| 56 | + | func y (z) = if ((z == m)) |
---|
| 57 | + | then i |
---|
| 58 | + | else if ((z == l)) |
---|
| 59 | + | then h |
---|
| 60 | + | else if ((z == k)) |
---|
| 61 | + | then j |
---|
| 62 | + | else throw("Incorrect asset attached") |
---|
| 63 | + | |
---|
| 64 | + | |
---|
| 65 | + | func A (z,v) = { |
---|
| 66 | + | let x = u(v) |
---|
| 67 | + | let B = (v - x) |
---|
| 68 | + | let C = getIntegerValue(this, a) |
---|
| 69 | + | let D = getIntegerValue(this, b) |
---|
| 70 | + | if ((z == m)) |
---|
47 | 71 | | then { |
---|
48 | | - | let y = fraction(x, v, (v + w)) |
---|
49 | | - | throw(("usdn" + toString(y))) |
---|
| 72 | + | let E = fraction(D, B, (B + C)) |
---|
| 73 | + | let F = k |
---|
| 74 | + | let G = (B + C) |
---|
| 75 | + | let H = (D - E) |
---|
| 76 | + | $Tuple5(x, E, F, G, H) |
---|
50 | 77 | | } |
---|
51 | | - | else if ((u == h)) |
---|
| 78 | + | else if ((z == k)) |
---|
52 | 79 | | then { |
---|
53 | | - | let y = fraction(w, v, (v + x)) |
---|
54 | | - | throw(("dyzrupt " + toString(y))) |
---|
| 80 | + | let E = fraction(C, B, (B + D)) |
---|
| 81 | + | let F = m |
---|
| 82 | + | let G = (C - E) |
---|
| 83 | + | let H = (D + B) |
---|
| 84 | + | $Tuple5(x, E, F, G, H) |
---|
55 | 85 | | } |
---|
56 | 86 | | else throw("Incorrect asset attached") |
---|
57 | 87 | | } |
---|
58 | 88 | | |
---|
59 | 89 | | |
---|
60 | | - | @Callable(z) |
---|
| 90 | + | @Callable(I) |
---|
61 | 91 | | func initUsdnDyzPair () = if (isDefined(getBoolean(this, e))) |
---|
62 | 92 | | then throw("Pair is already active") |
---|
63 | | - | else if ((z.callerPublicKey != k)) |
---|
| 93 | + | else if ((I.callerPublicKey != n)) |
---|
64 | 94 | | then throw("Only admin can activate pair") |
---|
65 | 95 | | else { |
---|
66 | | - | let A = $Tuple2(z.payments[0].amount, z.payments[0].assetId) |
---|
67 | | - | let B = A._1 |
---|
68 | | - | let C = A._2 |
---|
69 | | - | let D = $Tuple2(z.payments[1].amount, z.payments[1].assetId) |
---|
70 | | - | let E = D._1 |
---|
71 | | - | let F = D._2 |
---|
72 | | - | if ((C != j)) |
---|
| 96 | + | let J = $Tuple2(I.payments[0].amount, I.payments[0].assetId) |
---|
| 97 | + | let K = J._1 |
---|
| 98 | + | let L = J._2 |
---|
| 99 | + | let M = $Tuple2(I.payments[1].amount, I.payments[1].assetId) |
---|
| 100 | + | let N = M._1 |
---|
| 101 | + | let O = M._2 |
---|
| 102 | + | if ((L != m)) |
---|
73 | 103 | | then throw("A asset is not a usdn") |
---|
74 | | - | else if ((F != h)) |
---|
| 104 | + | else if ((O != k)) |
---|
75 | 105 | | then throw("B asset is not a dyzrupt") |
---|
76 | | - | else [BooleanEntry(e, true), IntegerEntry(a, B), IntegerEntry(b, E), IntegerEntry(g, 300)] |
---|
| 106 | + | else [BooleanEntry(e, true), IntegerEntry(a, K), IntegerEntry(b, N), IntegerEntry(g, 300)] |
---|
77 | 107 | | } |
---|
78 | 108 | | |
---|
79 | 109 | | |
---|
80 | 110 | | |
---|
81 | | - | @Callable(z) |
---|
| 111 | + | @Callable(I) |
---|
82 | 112 | | func exchangeUsdnDyz () = if (!(isDefined(getBoolean(this, e)))) |
---|
83 | 113 | | then throw("Pair is not active") |
---|
84 | 114 | | else { |
---|
85 | | - | let G = value(z.payments[0]) |
---|
86 | | - | let u = G.assetId |
---|
87 | | - | let q = G.amount |
---|
88 | | - | if (if ((u != j)) |
---|
89 | | - | then (u != h) |
---|
| 115 | + | let P = value(I.payments[0]) |
---|
| 116 | + | let z = P.assetId |
---|
| 117 | + | let v = P.amount |
---|
| 118 | + | if (if ((z != m)) |
---|
| 119 | + | then (z != k) |
---|
90 | 120 | | else false) |
---|
91 | 121 | | then throw("Only usdn and dyzrupt are supporting") |
---|
92 | 122 | | else { |
---|
93 | | - | let y = t(u, q) |
---|
94 | | - | throw(y) |
---|
| 123 | + | let Q = A(z, v) |
---|
| 124 | + | let x = Q._1 |
---|
| 125 | + | let E = Q._2 |
---|
| 126 | + | let F = Q._3 |
---|
| 127 | + | let G = Q._4 |
---|
| 128 | + | let H = Q._5 |
---|
| 129 | + | let R = y(z) |
---|
| 130 | + | let S = (t(R) + x) |
---|
| 131 | + | [IntegerEntry(a, G), IntegerEntry(b, H), IntegerEntry(R, S), ScriptTransfer(o, x, z), ScriptTransfer(I.caller, E, F)] |
---|
95 | 132 | | } |
---|
96 | 133 | | } |
---|
97 | 134 | | |
---|
Full:
Old | New | | Differences |
---|
1 | 1 | | {-# STDLIB_VERSION 4 #-} |
---|
2 | 2 | | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | 3 | | {-# CONTENT_TYPE DAPP #-} |
---|
4 | 4 | | let a = "usdn_dyz_a_asset_balance" |
---|
5 | 5 | | |
---|
6 | 6 | | let b = "usdn_dyz_b_asset_balance" |
---|
7 | 7 | | |
---|
8 | 8 | | let c = "eth_dyz_a_asset_balance" |
---|
9 | 9 | | |
---|
10 | 10 | | let d = "eth_dyz_b_asset_balance" |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "usdn_dyz_is_active" |
---|
13 | 13 | | |
---|
14 | 14 | | let f = "eth_dyz_is_active" |
---|
15 | 15 | | |
---|
16 | 16 | | let g = "fee" |
---|
17 | 17 | | |
---|
18 | | - | let h = base58'Bi4jxKEFjjYG2emeyxZfpkVMS88N7uAogHNsi1urkoJA' |
---|
| 18 | + | let h = "total_fee_eth" |
---|
19 | 19 | | |
---|
20 | | - | let i = base58'3JJkzB4pFXcqdJvC9TcV8ys1FLgesr5SxbhmykkpceQp' |
---|
| 20 | + | let i = "total_fee_usd" |
---|
21 | 21 | | |
---|
22 | | - | let j = base58'9Nf5wpj6jds3VRZKDryp6Dtf3R9d8MdbjNhencLogCr5' |
---|
| 22 | + | let j = "total_fee_dyzrapt" |
---|
23 | 23 | | |
---|
24 | | - | let k = base58'7zDUSbBXZtec3E333b1fC2wR2MPrnzh69ZrH3rwpQj9S' |
---|
| 24 | + | let k = base58'Bi4jxKEFjjYG2emeyxZfpkVMS88N7uAogHNsi1urkoJA' |
---|
25 | 25 | | |
---|
26 | | - | let l = Address(base58'3N7G2kVtBTh94aEnDHQ9dpi4EdsDxAiDXjB') |
---|
| 26 | + | let l = base58'3JJkzB4pFXcqdJvC9TcV8ys1FLgesr5SxbhmykkpceQp' |
---|
27 | 27 | | |
---|
28 | | - | func m (n) = { |
---|
29 | | - | let o = valueOrErrorMessage(getInteger(this, n), "unable to read key") |
---|
30 | | - | o |
---|
| 28 | + | let m = base58'9Nf5wpj6jds3VRZKDryp6Dtf3R9d8MdbjNhencLogCr5' |
---|
| 29 | + | |
---|
| 30 | + | let n = base58'7zDUSbBXZtec3E333b1fC2wR2MPrnzh69ZrH3rwpQj9S' |
---|
| 31 | + | |
---|
| 32 | + | let o = Address(base58'3N7G2kVtBTh94aEnDHQ9dpi4EdsDxAiDXjB') |
---|
| 33 | + | |
---|
| 34 | + | func p (q) = { |
---|
| 35 | + | let r = valueOrErrorMessage(getInteger(this, q), "unable to read key") |
---|
| 36 | + | r |
---|
31 | 37 | | } |
---|
32 | 38 | | |
---|
33 | 39 | | |
---|
34 | | - | func p (q) = { |
---|
35 | | - | let r = m(g) |
---|
36 | | - | let s = fraction(q, r, 10000) |
---|
37 | | - | s |
---|
| 40 | + | func s (q) = { |
---|
| 41 | + | let r = valueOrElse(getInteger(this, q), 0) |
---|
| 42 | + | r |
---|
38 | 43 | | } |
---|
39 | 44 | | |
---|
40 | 45 | | |
---|
41 | | - | func t (u,q) = { |
---|
42 | | - | let s = p(q) |
---|
43 | | - | let v = (q - s) |
---|
44 | | - | let w = getIntegerValue(this, a) |
---|
45 | | - | let x = getIntegerValue(this, b) |
---|
46 | | - | if ((u == j)) |
---|
| 46 | + | func t (q) = s(q) |
---|
| 47 | + | |
---|
| 48 | + | |
---|
| 49 | + | func u (v) = { |
---|
| 50 | + | let w = p(g) |
---|
| 51 | + | let x = fraction(v, w, 10000) |
---|
| 52 | + | x |
---|
| 53 | + | } |
---|
| 54 | + | |
---|
| 55 | + | |
---|
| 56 | + | func y (z) = if ((z == m)) |
---|
| 57 | + | then i |
---|
| 58 | + | else if ((z == l)) |
---|
| 59 | + | then h |
---|
| 60 | + | else if ((z == k)) |
---|
| 61 | + | then j |
---|
| 62 | + | else throw("Incorrect asset attached") |
---|
| 63 | + | |
---|
| 64 | + | |
---|
| 65 | + | func A (z,v) = { |
---|
| 66 | + | let x = u(v) |
---|
| 67 | + | let B = (v - x) |
---|
| 68 | + | let C = getIntegerValue(this, a) |
---|
| 69 | + | let D = getIntegerValue(this, b) |
---|
| 70 | + | if ((z == m)) |
---|
47 | 71 | | then { |
---|
48 | | - | let y = fraction(x, v, (v + w)) |
---|
49 | | - | throw(("usdn" + toString(y))) |
---|
| 72 | + | let E = fraction(D, B, (B + C)) |
---|
| 73 | + | let F = k |
---|
| 74 | + | let G = (B + C) |
---|
| 75 | + | let H = (D - E) |
---|
| 76 | + | $Tuple5(x, E, F, G, H) |
---|
50 | 77 | | } |
---|
51 | | - | else if ((u == h)) |
---|
| 78 | + | else if ((z == k)) |
---|
52 | 79 | | then { |
---|
53 | | - | let y = fraction(w, v, (v + x)) |
---|
54 | | - | throw(("dyzrupt " + toString(y))) |
---|
| 80 | + | let E = fraction(C, B, (B + D)) |
---|
| 81 | + | let F = m |
---|
| 82 | + | let G = (C - E) |
---|
| 83 | + | let H = (D + B) |
---|
| 84 | + | $Tuple5(x, E, F, G, H) |
---|
55 | 85 | | } |
---|
56 | 86 | | else throw("Incorrect asset attached") |
---|
57 | 87 | | } |
---|
58 | 88 | | |
---|
59 | 89 | | |
---|
60 | | - | @Callable(z) |
---|
| 90 | + | @Callable(I) |
---|
61 | 91 | | func initUsdnDyzPair () = if (isDefined(getBoolean(this, e))) |
---|
62 | 92 | | then throw("Pair is already active") |
---|
63 | | - | else if ((z.callerPublicKey != k)) |
---|
| 93 | + | else if ((I.callerPublicKey != n)) |
---|
64 | 94 | | then throw("Only admin can activate pair") |
---|
65 | 95 | | else { |
---|
66 | | - | let A = $Tuple2(z.payments[0].amount, z.payments[0].assetId) |
---|
67 | | - | let B = A._1 |
---|
68 | | - | let C = A._2 |
---|
69 | | - | let D = $Tuple2(z.payments[1].amount, z.payments[1].assetId) |
---|
70 | | - | let E = D._1 |
---|
71 | | - | let F = D._2 |
---|
72 | | - | if ((C != j)) |
---|
| 96 | + | let J = $Tuple2(I.payments[0].amount, I.payments[0].assetId) |
---|
| 97 | + | let K = J._1 |
---|
| 98 | + | let L = J._2 |
---|
| 99 | + | let M = $Tuple2(I.payments[1].amount, I.payments[1].assetId) |
---|
| 100 | + | let N = M._1 |
---|
| 101 | + | let O = M._2 |
---|
| 102 | + | if ((L != m)) |
---|
73 | 103 | | then throw("A asset is not a usdn") |
---|
74 | | - | else if ((F != h)) |
---|
| 104 | + | else if ((O != k)) |
---|
75 | 105 | | then throw("B asset is not a dyzrupt") |
---|
76 | | - | else [BooleanEntry(e, true), IntegerEntry(a, B), IntegerEntry(b, E), IntegerEntry(g, 300)] |
---|
| 106 | + | else [BooleanEntry(e, true), IntegerEntry(a, K), IntegerEntry(b, N), IntegerEntry(g, 300)] |
---|
77 | 107 | | } |
---|
78 | 108 | | |
---|
79 | 109 | | |
---|
80 | 110 | | |
---|
81 | | - | @Callable(z) |
---|
| 111 | + | @Callable(I) |
---|
82 | 112 | | func exchangeUsdnDyz () = if (!(isDefined(getBoolean(this, e)))) |
---|
83 | 113 | | then throw("Pair is not active") |
---|
84 | 114 | | else { |
---|
85 | | - | let G = value(z.payments[0]) |
---|
86 | | - | let u = G.assetId |
---|
87 | | - | let q = G.amount |
---|
88 | | - | if (if ((u != j)) |
---|
89 | | - | then (u != h) |
---|
| 115 | + | let P = value(I.payments[0]) |
---|
| 116 | + | let z = P.assetId |
---|
| 117 | + | let v = P.amount |
---|
| 118 | + | if (if ((z != m)) |
---|
| 119 | + | then (z != k) |
---|
90 | 120 | | else false) |
---|
91 | 121 | | then throw("Only usdn and dyzrupt are supporting") |
---|
92 | 122 | | else { |
---|
93 | | - | let y = t(u, q) |
---|
94 | | - | throw(y) |
---|
| 123 | + | let Q = A(z, v) |
---|
| 124 | + | let x = Q._1 |
---|
| 125 | + | let E = Q._2 |
---|
| 126 | + | let F = Q._3 |
---|
| 127 | + | let G = Q._4 |
---|
| 128 | + | let H = Q._5 |
---|
| 129 | + | let R = y(z) |
---|
| 130 | + | let S = (t(R) + x) |
---|
| 131 | + | [IntegerEntry(a, G), IntegerEntry(b, H), IntegerEntry(R, S), ScriptTransfer(o, x, z), ScriptTransfer(I.caller, E, F)] |
---|
95 | 132 | | } |
---|
96 | 133 | | } |
---|
97 | 134 | | |
---|
98 | 135 | | |
---|