tx · 5kXvuNXuHnR48SPhf4ffSCSz5SDzhS1g8ehCzuPDv7fg

3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc:  -0.01400000 Waves

2019.09.08 13:43 [666991] smart account 3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc > SELF 0.00000000 Waves

{ "type": 13, "id": "5kXvuNXuHnR48SPhf4ffSCSz5SDzhS1g8ehCzuPDv7fg", "fee": 1400000, "feeAssetId": null, "timestamp": 1567939414558, "version": 1, "sender": "3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc", "senderPublicKey": "9cETBksYN8YMHGvDB6BEqmH9HScpCMBRZwnjCviRQ9aA", "proofs": [ "4xPxCZS4iRUWBrTcuhcsKSR4tGDSmhcGKihk1SpPYvKdwsgufzsnFmHwtD8xK4m8LGcN2FUKeYzy9v2tcmyEmP8e" ], "script": "base64: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", "chainId": 84, "height": 666991, "spentComplexity": 0 } View: original | compacted Prev: Vzswnt7gd2A5f1f7uwyfSoRmTwGhiLfkLkfqHH6kP2E Next: CJBoNBF5kKKjWqhLQ2E123KMaCxZM2rei8qyxka2jjKs Diff:
OldNewDifferences
6363 else true
6464
6565
66-func B (o,p,q,r,t,u,v,w,x,y,z,A) = ((((((((((((((((((((((toString(o) + ",") + toString(p)) + ";") + toString(q)) + ",") + toString(r)) + ";") + toString(t)) + ",") + toString(u)) + ";") + toString(v)) + ",") + toString(w)) + ";") + toString(x)) + ",") + toString(y)) + ";") + toString(z)) + ",") + toString(A))
66+func B (o,p,q,r,t,u,v,w,x,y,z,A) = ((((((((((((((((((((((("patent:" + toString(o)) + ",") + toString(p)) + ";") + toString(q)) + ",") + toString(r)) + ";") + toString(t)) + ",") + toString(u)) + ";") + toString(v)) + ",") + toString(w)) + ";") + toString(x)) + ",") + toString(y)) + ";") + toString(z)) + ",") + toString(A))
6767
6868
6969 func C (D) = (D + "_balance")
9090 func M (L) = l(K(L))
9191
9292
93-@Callable(N)
93+func N (G) = (G + "_insurance_cnt")
94+
95+
96+func O (G) = g(N(G))
97+
98+
99+@Callable(P)
94100 func patent (o,p,q,r,t,u,v,w,x,y,z,A) = {
95- let O = extract(N.payment)
96- if (isDefined(O.assetId))
101+ let Q = extract(P.payment)
102+ if (isDefined(Q.assetId))
97103 then throw("can use WAVES only at the moment")
98104 else {
99- let P = toBase58String(N.caller.bytes)
100- if ((O.amount != a))
105+ let R = toBase58String(P.caller.bytes)
106+ if ((Q.amount != a))
101107 then throw("purchase amount cannot be not equal to the price")
102108 else if (!(s(o, p, q, r, t, u, v, w, x, y, z, A)))
103109 then throw("invalid coordinates order")
104110 else if ((l(B(o, p, q, r, t, u, v, w, x, y, z, A)) != f))
105111 then throw("this patent is already exists")
106- else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), P)])
112+ else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), R)])
107113 }
108114 }
109115
110116
111117
112-@Callable(N)
118+@Callable(P)
113119 func buyPatent (o,p,q,r,t,u,v,w,x,y,z,A) = {
114- let O = extract(N.payment)
115- if (isDefined(O.assetId))
120+ let Q = extract(P.payment)
121+ if (isDefined(Q.assetId))
116122 then throw("can use WAVES only at the moment")
117123 else {
118- let P = toBase58String(N.caller.bytes)
119- let Q = l(B(o, p, q, r, t, u, v, w, x, y, z, A))
120- if ((O.amount != b))
124+ let R = toBase58String(P.caller.bytes)
125+ let S = l(B(o, p, q, r, t, u, v, w, x, y, z, A))
126+ if ((Q.amount != b))
121127 then throw("purchase amount cannot be not equal to the price")
122128 else if (!(s(o, p, q, r, t, u, v, w, x, y, z, A)))
123129 then throw("invalid coordinates order")
124- else if ((Q == f))
130+ else if ((S == f))
125131 then throw("there is no such patent")
126- else if ((Q == P))
132+ else if ((S == R))
127133 then throw("you cannot buy your own patent")
128- else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), P), DataEntry(C(Q), (E(Q) + O.amount))])
134+ else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), R), DataEntry(C(S), (E(S) + Q.amount))])
129135 }
130136 }
131137
132138
133139
134-@Callable(N)
140+@Callable(P)
135141 func withdraw () = {
136- let P = toBase58String(N.caller.bytes)
137- let R = E(P)
138- if ((0 >= R))
142+ let R = toBase58String(P.caller.bytes)
143+ let T = E(R)
144+ if ((0 >= T))
139145 then throw("insufficient balance")
140- else ScriptResult(WriteSet([DataEntry(C(P), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(P), R, unit)]))
146+ else ScriptResult(WriteSet([DataEntry(C(R), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(R), T, unit)]))
141147 }
142148
143149
144150
145-@Callable(N)
146-func gameReport (L,S,T) = {
147- let U = toBase58String(N.caller.bytes)
148- if ((U != c))
151+@Callable(P)
152+func gameReport (L,U,V) = {
153+ let W = toBase58String(P.caller.bytes)
154+ if ((W != c))
149155 then throw("only oracle can inform about games results")
150- else if ((S == T))
156+ else if ((U == V))
151157 then throw("winner and loser must be different")
152158 else if ((M(L) != f))
153159 then throw("this game has already been played")
154- else WriteSet([DataEntry(K(L), (((S + "-WIN;") + T) + "-LOSE")), DataEntry(F(S), (H(S) + 1)), DataEntry(I(T), (J(T) + 1))])
160+ else WriteSet([DataEntry(K(L), (((U + "-WIN;") + V) + "-LOSE")), DataEntry(F(U), (H(U) + 1)), DataEntry(I(V), (J(V) + 1))])
161+ }
162+
163+
164+
165+@Callable(P)
166+func insure () = {
167+ let Q = extract(P.payment)
168+ let X = fraction(a, 7, 100)
169+ if (isDefined(Q.assetId))
170+ then throw("can use WAVES only at the moment")
171+ else {
172+ let R = toBase58String(P.caller.bytes)
173+ if ((Q.amount != X))
174+ then throw("insurance payment amount cannot be not equal to the insurance price")
175+ else WriteSet([DataEntry(N(R), (O(R) + 1))])
176+ }
155177 }
156178
157179
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = 200000000
77
88 let c = "3MvisDfA6vNg4i6iKYWZ8bWvyP4imfBb9eq"
99
1010 let d = "WIN"
1111
1212 let e = "LOSE"
1313
1414 let f = "none"
1515
1616 func g (h) = {
1717 let i = {
1818 let j = getInteger(this, h)
1919 if ($isInstanceOf(j, "Int"))
2020 then {
2121 let k = j
2222 k
2323 }
2424 else 0
2525 }
2626 i
2727 }
2828
2929
3030 func l (h) = {
3131 let m = {
3232 let j = getString(this, h)
3333 if ($isInstanceOf(j, "String"))
3434 then {
3535 let k = j
3636 k
3737 }
3838 else f
3939 }
4040 m
4141 }
4242
4343
4444 func n (o,p,q,r) = if ((o > q))
4545 then false
4646 else if (if ((o == q))
4747 then (p > r)
4848 else false)
4949 then false
5050 else true
5151
5252
5353 func s (o,p,q,r,t,u,v,w,x,y,z,A) = if (!(n(o, p, q, r)))
5454 then false
5555 else if (!(n(q, r, t, u)))
5656 then false
5757 else if (!(n(t, u, v, w)))
5858 then false
5959 else if (!(n(v, w, x, y)))
6060 then false
6161 else if (!(n(x, y, z, A)))
6262 then false
6363 else true
6464
6565
66-func B (o,p,q,r,t,u,v,w,x,y,z,A) = ((((((((((((((((((((((toString(o) + ",") + toString(p)) + ";") + toString(q)) + ",") + toString(r)) + ";") + toString(t)) + ",") + toString(u)) + ";") + toString(v)) + ",") + toString(w)) + ";") + toString(x)) + ",") + toString(y)) + ";") + toString(z)) + ",") + toString(A))
66+func B (o,p,q,r,t,u,v,w,x,y,z,A) = ((((((((((((((((((((((("patent:" + toString(o)) + ",") + toString(p)) + ";") + toString(q)) + ",") + toString(r)) + ";") + toString(t)) + ",") + toString(u)) + ";") + toString(v)) + ",") + toString(w)) + ";") + toString(x)) + ",") + toString(y)) + ";") + toString(z)) + ",") + toString(A))
6767
6868
6969 func C (D) = (D + "_balance")
7070
7171
7272 func E (D) = g(C(D))
7373
7474
7575 func F (G) = (G + "_wincnt")
7676
7777
7878 func H (G) = g(F(G))
7979
8080
8181 func I (G) = (G + "_losecnt")
8282
8383
8484 func J (G) = g(I(G))
8585
8686
8787 func K (L) = ("game_" + L)
8888
8989
9090 func M (L) = l(K(L))
9191
9292
93-@Callable(N)
93+func N (G) = (G + "_insurance_cnt")
94+
95+
96+func O (G) = g(N(G))
97+
98+
99+@Callable(P)
94100 func patent (o,p,q,r,t,u,v,w,x,y,z,A) = {
95- let O = extract(N.payment)
96- if (isDefined(O.assetId))
101+ let Q = extract(P.payment)
102+ if (isDefined(Q.assetId))
97103 then throw("can use WAVES only at the moment")
98104 else {
99- let P = toBase58String(N.caller.bytes)
100- if ((O.amount != a))
105+ let R = toBase58String(P.caller.bytes)
106+ if ((Q.amount != a))
101107 then throw("purchase amount cannot be not equal to the price")
102108 else if (!(s(o, p, q, r, t, u, v, w, x, y, z, A)))
103109 then throw("invalid coordinates order")
104110 else if ((l(B(o, p, q, r, t, u, v, w, x, y, z, A)) != f))
105111 then throw("this patent is already exists")
106- else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), P)])
112+ else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), R)])
107113 }
108114 }
109115
110116
111117
112-@Callable(N)
118+@Callable(P)
113119 func buyPatent (o,p,q,r,t,u,v,w,x,y,z,A) = {
114- let O = extract(N.payment)
115- if (isDefined(O.assetId))
120+ let Q = extract(P.payment)
121+ if (isDefined(Q.assetId))
116122 then throw("can use WAVES only at the moment")
117123 else {
118- let P = toBase58String(N.caller.bytes)
119- let Q = l(B(o, p, q, r, t, u, v, w, x, y, z, A))
120- if ((O.amount != b))
124+ let R = toBase58String(P.caller.bytes)
125+ let S = l(B(o, p, q, r, t, u, v, w, x, y, z, A))
126+ if ((Q.amount != b))
121127 then throw("purchase amount cannot be not equal to the price")
122128 else if (!(s(o, p, q, r, t, u, v, w, x, y, z, A)))
123129 then throw("invalid coordinates order")
124- else if ((Q == f))
130+ else if ((S == f))
125131 then throw("there is no such patent")
126- else if ((Q == P))
132+ else if ((S == R))
127133 then throw("you cannot buy your own patent")
128- else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), P), DataEntry(C(Q), (E(Q) + O.amount))])
134+ else WriteSet([DataEntry(B(o, p, q, r, t, u, v, w, x, y, z, A), R), DataEntry(C(S), (E(S) + Q.amount))])
129135 }
130136 }
131137
132138
133139
134-@Callable(N)
140+@Callable(P)
135141 func withdraw () = {
136- let P = toBase58String(N.caller.bytes)
137- let R = E(P)
138- if ((0 >= R))
142+ let R = toBase58String(P.caller.bytes)
143+ let T = E(R)
144+ if ((0 >= T))
139145 then throw("insufficient balance")
140- else ScriptResult(WriteSet([DataEntry(C(P), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(P), R, unit)]))
146+ else ScriptResult(WriteSet([DataEntry(C(R), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(R), T, unit)]))
141147 }
142148
143149
144150
145-@Callable(N)
146-func gameReport (L,S,T) = {
147- let U = toBase58String(N.caller.bytes)
148- if ((U != c))
151+@Callable(P)
152+func gameReport (L,U,V) = {
153+ let W = toBase58String(P.caller.bytes)
154+ if ((W != c))
149155 then throw("only oracle can inform about games results")
150- else if ((S == T))
156+ else if ((U == V))
151157 then throw("winner and loser must be different")
152158 else if ((M(L) != f))
153159 then throw("this game has already been played")
154- else WriteSet([DataEntry(K(L), (((S + "-WIN;") + T) + "-LOSE")), DataEntry(F(S), (H(S) + 1)), DataEntry(I(T), (J(T) + 1))])
160+ else WriteSet([DataEntry(K(L), (((U + "-WIN;") + V) + "-LOSE")), DataEntry(F(U), (H(U) + 1)), DataEntry(I(V), (J(V) + 1))])
161+ }
162+
163+
164+
165+@Callable(P)
166+func insure () = {
167+ let Q = extract(P.payment)
168+ let X = fraction(a, 7, 100)
169+ if (isDefined(Q.assetId))
170+ then throw("can use WAVES only at the moment")
171+ else {
172+ let R = toBase58String(P.caller.bytes)
173+ if ((Q.amount != X))
174+ then throw("insurance payment amount cannot be not equal to the insurance price")
175+ else WriteSet([DataEntry(N(R), (O(R) + 1))])
176+ }
155177 }
156178
157179

github/deemru/w8io/169f3d6 
45.40 ms