tx · EX7v9wmVhm872pmA3V9CE6GXtMhvANX2z5MERA9PoBTW

3N4EKCSKqAYmVFiBTt5DyGYjk56aKZsff7W:  -0.01000000 Waves

2021.09.17 17:06 [1707152] smart account 3N4EKCSKqAYmVFiBTt5DyGYjk56aKZsff7W > SELF 0.00000000 Waves

{ "type": 13, "id": "EX7v9wmVhm872pmA3V9CE6GXtMhvANX2z5MERA9PoBTW", "fee": 1000000, "feeAssetId": null, "timestamp": 1631887645851, "version": 2, "chainId": 84, "sender": "3N4EKCSKqAYmVFiBTt5DyGYjk56aKZsff7W", "senderPublicKey": "3tzrgq6Xg2HGk84cTqnsMgmgozEnErc7mv3LeJC6bDLv", "proofs": [ "3YYr5a6v22UU6awYYJNvqUXzbZrwEEdvtLagtSXLNvkctybY1i86B8sQxJuBHcZPvBDoP8Vp7bDZoMar9nRLDPtG" ], "script": "base64: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", "height": 1707152, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+
5+
6+@Callable(a)
7+func approveCredit (b,c,d,e) = if (if ((this == a.caller))
8+ then !(isDefined(getBoolean(this, (b + "_status"))))
9+ else false)
10+ then WriteSet([DataEntry((b + "_status"), "approved"), DataEntry((b + "_amount"), c), DataEntry((b + "_target"), d), DataEntry((b + "_lockScriptId"), e)])
11+ else throw((("Credit for " + b) + " has already been approved or caller is not dApp owner"))
12+
13+
14+
15+@Callable(a)
16+func getMoney () = {
17+ let f = toBase58String(a.caller.bytes)
18+ let g = {
19+ let h = getString(this, (f + "_status"))
20+ if ($isInstanceOf(h, "Unit"))
21+ then "unset"
22+ else if ($isInstanceOf(h, "String"))
23+ then {
24+ let i = h
25+ i
26+ }
27+ else throw("Match error")
28+ }
29+ let j = extract(getString(this, (f + "_lockScriptId")))
30+ let k = transactionHeightById(fromBase58String(j))
31+ let l = {
32+ let h = k
33+ if ($isInstanceOf(h, "Int"))
34+ then true
35+ else throw("Lock has not been set")
36+ }
37+ let c = extract(getInteger(this, (f + "_amount")))
38+ if (if ((g == "approved"))
39+ then l
40+ else false)
41+ then ScriptResult(WriteSet([DataEntry((f + "_status"), "borrowed")]), TransferSet([ScriptTransfer(a.caller, c, unit)]))
42+ else throw("Credit was not approved or money has already been taken")
43+ }
44+
45+
46+
47+@Callable(a)
48+func returnMoney () = {
49+ let f = toBase58String(a.caller.bytes)
50+ let g = {
51+ let h = getString(this, (f + "_status"))
52+ if ($isInstanceOf(h, "Unit"))
53+ then "unset"
54+ else if ($isInstanceOf(h, "String"))
55+ then {
56+ let i = h
57+ i
58+ }
59+ else throw("Match error")
60+ }
61+ let m = extract(a.payment)
62+ let n = getInteger(this, (f + "_amount"))
63+ if ((g != "borrowed"))
64+ then throw("Cannot return, nothing was borrowed")
65+ else if (isDefined(m.assetId))
66+ then throw("Can return only WAVES at the moment")
67+ else if ((n != m.amount))
68+ then throw("Should return borrowed amount")
69+ else WriteSet([DataEntry((f + "_status"), "returned")])
70+ }
71+
72+
73+
74+@Callable(a)
75+func cancelContract () = {
76+ let f = toBase58String(a.caller.bytes)
77+ let g = {
78+ let h = getString(this, (f + "_status"))
79+ if ($isInstanceOf(h, "Unit"))
80+ then "unset"
81+ else if ($isInstanceOf(h, "String"))
82+ then {
83+ let i = h
84+ i
85+ }
86+ else throw("Match error")
87+ }
88+ if (if ((g == "approved"))
89+ then true
90+ else (g == "unset"))
91+ then WriteSet([DataEntry((f + "_status"), "canceled")])
92+ else throw("Cannot cancel credit. Money has already been taken")
93+ }
94+
95+
96+@Verifier(o)
97+func p () = {
98+ let h = o
99+ if ($isInstanceOf(h, "DataTransaction"))
100+ then false
101+ else if ($isInstanceOf(h, "SetScriptTransaction"))
102+ then false
103+ else sigVerify(o.bodyBytes, o.proofs[0], o.senderPublicKey)
104+ }
105+

github/deemru/w8io/873ac7e 
17.32 ms