tx · 55hNEsKebyqGS8vCw8oeiuQCqf4PRUB5yBvh7WwQxZQG

3MtTheYx7F8GojnQXdBq5njwKSWwWDR8Yx3:  -0.01400000 Waves

2020.11.20 18:23 [1273880] smart account 3MtTheYx7F8GojnQXdBq5njwKSWwWDR8Yx3 > SELF 0.00000000 Waves

{ "type": 13, "id": "55hNEsKebyqGS8vCw8oeiuQCqf4PRUB5yBvh7WwQxZQG", "fee": 1400000, "feeAssetId": null, "timestamp": 1605885849843, "version": 2, "chainId": 84, "sender": "3MtTheYx7F8GojnQXdBq5njwKSWwWDR8Yx3", "senderPublicKey": "24o2mnMP6y64dijDFoZKhDpV73e1gCFKxQcZ6X9q3z1B", "proofs": [ "52S2y4Ah2Cca94URVJGzvuHvqhovhvXARUkvVtNGKdUNwSWdE4rfDSQ9hV2NrsNgJ8DfUqnGSEEKt3634veMdKHg" ], "script": "base64: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", "height": 1273880, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5RyV7rb3i2oC27HBC9Zwh8vCFeLLQb85bpyJ2UgXuJvr Next: 8jmkyYve2ey2uqgxv62N2sSstm4jUoBKbW8Pthdjgeqd Diff:
OldNewDifferences
102102 }
103103
104104
105-@Verifier(G)
106-func H () = true
105+
106+@Callable(A)
107+func withdraw () = {
108+ let E = toBase58String(A.caller.bytes)
109+ let G = z(E)
110+ if ((0 >= G))
111+ then throw("insufficient balance")
112+ else [IntegerEntry(x(E), 0), ScriptTransfer(addressFromStringValue(E), G, unit)]
113+ }
114+
115+
116+@Verifier(H)
117+func I () = true
107118
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'HfLpRhXtnuCabRyNT6z7soaXcbUpwLUhjyBCVQ4szwzd'
55
66 let b = base58'2qjcWuL7QitmuhkSTM7CnNxurCYXuqJ9ubswLBGmXfDv'
77
88 let c = base58'GaQkBG6yLLAarb8wvPrEKnQhFqWomD2ZGT1T4vVx24qw'
99
1010 let d = "none"
1111
1212 func e (f) = {
1313 let g = {
1414 let h = getInteger(this, f)
1515 if ($isInstanceOf(h, "Int"))
1616 then {
1717 let i = h
1818 i
1919 }
2020 else 0
2121 }
2222 g
2323 }
2424
2525
2626 func j (f) = {
2727 let k = {
2828 let h = getString(this, f)
2929 if ($isInstanceOf(h, "String"))
3030 then {
3131 let i = h
3232 i
3333 }
3434 else d
3535 }
3636 k
3737 }
3838
3939
4040 func l (m) = (m + "_price")
4141
4242
4343 func n (m) = e(l(m))
4444
4545
4646 func o (p,m) = (((m + "_") + p) + "_cnt")
4747
4848
4949 func q (p,m) = e(o(p, m))
5050
5151
5252 func r (s,t) = ("item_" + toBase58String(sha256(toBytes((s + t)))))
5353
5454
5555 func u (m) = (m + "_data")
5656
5757
5858 func v (m) = (m + "_owner")
5959
6060
6161 func w (m) = j(v(m))
6262
6363
6464 func x (y) = (y + "_balance")
6565
6666
6767 func z (y) = e(x(y))
6868
6969
7070 @Callable(A)
7171 func purchase (m) = {
7272 let B = value(A.payments)
7373 if (isDefined(B[0].assetId))
7474 then throw("WAVES tokens only")
7575 else {
7676 let C = toBase58String(A.caller.bytes)
7777 let D = n(m)
7878 let E = w(m)
7979 if ((D > B[0].amount))
8080 then throw("purchase less than item price")
8181 else if ((B[0].amount > D))
8282 then throw("purchase amount higher than item price")
8383 else if ((size(B) > 1))
8484 then throw("single item only")
8585 else if ((E == d))
8686 then throw("supplier doesn't exist")
8787 else [IntegerEntry(o(C, m), (q(C, m) + 1)), IntegerEntry(x(E), (z(E) + B[0].amount))]
8888 }
8989 }
9090
9191
9292
9393 @Callable(A)
9494 func addItem (t,D,F) = {
9595 let E = toBase58String(A.caller.bytes)
9696 let m = r(E, t)
9797 if ((0 >= D))
9898 then throw("purchase amount cannot be less than item price")
9999 else if ((w(m) != d))
100100 then throw("an item already exist")
101101 else [StringEntry(v(m), E), IntegerEntry(l(m), D), StringEntry(u(m), F)]
102102 }
103103
104104
105-@Verifier(G)
106-func H () = true
105+
106+@Callable(A)
107+func withdraw () = {
108+ let E = toBase58String(A.caller.bytes)
109+ let G = z(E)
110+ if ((0 >= G))
111+ then throw("insufficient balance")
112+ else [IntegerEntry(x(E), 0), ScriptTransfer(addressFromStringValue(E), G, unit)]
113+ }
114+
115+
116+@Verifier(H)
117+func I () = true
107118

github/deemru/w8io/169f3d6 
47.78 ms