tx · AwCPbB64c5T9VNgovWbxZ4DqU3FifNCUorityhH9zKJN

3N9j84jA8n5YhSY4MbqP8cB1nZuxjZxMXmm:  -0.01400000 Waves

2021.02.03 13:37 [1381878] smart account 3N9j84jA8n5YhSY4MbqP8cB1nZuxjZxMXmm > SELF 0.00000000 Waves

{ "type": 13, "id": "AwCPbB64c5T9VNgovWbxZ4DqU3FifNCUorityhH9zKJN", "fee": 1400000, "feeAssetId": null, "timestamp": 1612348711168, "version": 2, "chainId": 84, "sender": "3N9j84jA8n5YhSY4MbqP8cB1nZuxjZxMXmm", "senderPublicKey": "6VmvRNSSafWsdNYddeAf3MgEa4RSgGvHe97sxZznf5mE", "proofs": [ "rB5ShbBzMtQr4UAKJNaJRQDeLeiPCpwfYBB4MnPD7fRDkVD5Bmn84FH2SvZmXHYh6r6rQQeLg6oc1w1rhGBDK1X" ], "script": "base64:AAIDAAAAAAAAAAcIARIDCgEBAAAAAAAAAAEAAAABaQEAAAAId2l0aGRyYXcAAAABAAAABmFtb3VudAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZQAAAAIFAAAADWN1cnJlbnRBbW91bnQFAAAABmFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAHkNhbid0IHdpdGhkcmF3IG5lZ2F0aXZlIGFtb3VudAMJAABmAAAAAgAAAAAAAAAAAAUAAAAJbmV3QW1vdW50CQAAAgAAAAECAAAAEk5vdCBlbm91Z2ggYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACmN1cnJlbnRLZXkFAAAACW5ld0Ftb3VudAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAPRGF0YVRyYW5zYWN0aW9uBwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24HCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleU9zSuM=", "height": 1381878, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Ci8oHMMnRnqVkqBpXtrJKAYnD5DEzEzURQsy6qjXdMp2 Next: none Diff:
OldNewDifferences
44
55
66 @Callable(i)
7-func deposit () = {
8- let pmt = extract(i.payment)
9- if (isDefined(pmt.assetId))
10- then throw("can hodl waves only at the moment")
11- else {
12- let currentKey = toBase58String(i.caller.bytes)
13- let xxxInvestorBalance = ((currentKey + "_") + "ib")
14- let currentAmount = match getInteger(this, xxxInvestorBalance) {
15- case a: Int =>
16- a
17- case _ =>
18- 0
19- }
20- let newAmount = (currentAmount + pmt.amount)
21- WriteSet([DataEntry(xxxInvestorBalance, newAmount)])
22- }
23- }
24-
25-
26-
27-@Callable(i)
287 func withdraw (amount) = {
298 let currentKey = toBase58String(i.caller.bytes)
30- let xxxInvestorBalance = ((currentKey + "_") + "ib")
31- let currentAmount = match getInteger(this, xxxInvestorBalance) {
9+ let currentAmount = match getInteger(this, currentKey) {
3210 case a: Int =>
3311 a
3412 case _ =>
3917 then throw("Can't withdraw negative amount")
4018 else if ((0 > newAmount))
4119 then throw("Not enough balance")
42- else ScriptResult(WriteSet([DataEntry(xxxInvestorBalance, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
43- }
44-
45-
46-
47-@Callable(i)
48-func getFunds (amount) = {
49- let quorum = 2
50- let currentKey = toBase58String(i.caller.bytes)
51- let xxxStartupFund = ((currentKey + "_") + "sf")
52- let xxxStartupVotes = ((currentKey + "_") + "sv")
53- let currentAmount = match getInteger(this, xxxStartupFund) {
54- case a: Int =>
55- a
56- case _ =>
57- 0
58- }
59- let totalVotes = match getInteger(this, xxxStartupVotes) {
60- case a: Int =>
61- a
62- case _ =>
63- 0
64- }
65- let newAmount = (currentAmount - amount)
66- if ((0 > amount))
67- then throw("Can't withdraw negative amount")
68- else if ((0 > newAmount))
69- then throw("Not enough balance")
70- else if ((quorum > totalVotes))
71- then throw("Not enough votes. At least 2 votes required!")
72- else ScriptResult(WriteSet([DataEntry(xxxStartupFund, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
73- }
74-
75-
76-
77-@Callable(i)
78-func vote (amount,address) = {
79- let currentKey = toBase58String(i.caller.bytes)
80- let xxxInvestorBalance = ((currentKey + "_") + "ib")
81- let xxxStartupFund = ((address + "_") + "sf")
82- let xxxStartupVotes = ((address + "_") + "sv")
83- let flagKey = ((address + "_") + currentKey)
84- let flag = match getInteger(this, flagKey) {
85- case a: Int =>
86- a
87- case _ =>
88- 0
89- }
90- let currentAmount = match getInteger(this, xxxInvestorBalance) {
91- case a: Int =>
92- a
93- case _ =>
94- 0
95- }
96- let currentVotes = match getInteger(this, xxxStartupVotes) {
97- case a: Int =>
98- a
99- case _ =>
100- 0
101- }
102- let currentFund = match getInteger(this, xxxStartupFund) {
103- case a: Int =>
104- a
105- case _ =>
106- 0
107- }
108- if ((0 >= amount))
109- then throw("Can't withdraw negative amount")
110- else if ((amount > currentAmount))
111- then throw("Not enough balance!")
112- else if ((flag > 0))
113- then throw("Only one vote per project is possible!")
114- else WriteSet([DataEntry(xxxInvestorBalance, (currentAmount - amount)), DataEntry(xxxStartupVotes, (currentVotes + 1)), DataEntry(flagKey, 1), DataEntry(xxxStartupFund, (currentFund + amount))])
20+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
11521 }
11622
11723
11824 @Verifier(tx)
11925 func verify () = match tx {
120- case d: SetScriptTransaction =>
121- sigVerify(tx.bodyBytes, tx.proofs[0], base58'6VmvRNSSafWsdNYddeAf3MgEa4RSgGvHe97sxZznf5mE')
26+ case _: DataTransaction =>
27+ false
28+ case _: SetScriptTransaction =>
29+ false
12230 case _ =>
123- false
31+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
12432 }
12533
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
7-func deposit () = {
8- let pmt = extract(i.payment)
9- if (isDefined(pmt.assetId))
10- then throw("can hodl waves only at the moment")
11- else {
12- let currentKey = toBase58String(i.caller.bytes)
13- let xxxInvestorBalance = ((currentKey + "_") + "ib")
14- let currentAmount = match getInteger(this, xxxInvestorBalance) {
15- case a: Int =>
16- a
17- case _ =>
18- 0
19- }
20- let newAmount = (currentAmount + pmt.amount)
21- WriteSet([DataEntry(xxxInvestorBalance, newAmount)])
22- }
23- }
24-
25-
26-
27-@Callable(i)
287 func withdraw (amount) = {
298 let currentKey = toBase58String(i.caller.bytes)
30- let xxxInvestorBalance = ((currentKey + "_") + "ib")
31- let currentAmount = match getInteger(this, xxxInvestorBalance) {
9+ let currentAmount = match getInteger(this, currentKey) {
3210 case a: Int =>
3311 a
3412 case _ =>
3513 0
3614 }
3715 let newAmount = (currentAmount - amount)
3816 if ((0 > amount))
3917 then throw("Can't withdraw negative amount")
4018 else if ((0 > newAmount))
4119 then throw("Not enough balance")
42- else ScriptResult(WriteSet([DataEntry(xxxInvestorBalance, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
43- }
44-
45-
46-
47-@Callable(i)
48-func getFunds (amount) = {
49- let quorum = 2
50- let currentKey = toBase58String(i.caller.bytes)
51- let xxxStartupFund = ((currentKey + "_") + "sf")
52- let xxxStartupVotes = ((currentKey + "_") + "sv")
53- let currentAmount = match getInteger(this, xxxStartupFund) {
54- case a: Int =>
55- a
56- case _ =>
57- 0
58- }
59- let totalVotes = match getInteger(this, xxxStartupVotes) {
60- case a: Int =>
61- a
62- case _ =>
63- 0
64- }
65- let newAmount = (currentAmount - amount)
66- if ((0 > amount))
67- then throw("Can't withdraw negative amount")
68- else if ((0 > newAmount))
69- then throw("Not enough balance")
70- else if ((quorum > totalVotes))
71- then throw("Not enough votes. At least 2 votes required!")
72- else ScriptResult(WriteSet([DataEntry(xxxStartupFund, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
73- }
74-
75-
76-
77-@Callable(i)
78-func vote (amount,address) = {
79- let currentKey = toBase58String(i.caller.bytes)
80- let xxxInvestorBalance = ((currentKey + "_") + "ib")
81- let xxxStartupFund = ((address + "_") + "sf")
82- let xxxStartupVotes = ((address + "_") + "sv")
83- let flagKey = ((address + "_") + currentKey)
84- let flag = match getInteger(this, flagKey) {
85- case a: Int =>
86- a
87- case _ =>
88- 0
89- }
90- let currentAmount = match getInteger(this, xxxInvestorBalance) {
91- case a: Int =>
92- a
93- case _ =>
94- 0
95- }
96- let currentVotes = match getInteger(this, xxxStartupVotes) {
97- case a: Int =>
98- a
99- case _ =>
100- 0
101- }
102- let currentFund = match getInteger(this, xxxStartupFund) {
103- case a: Int =>
104- a
105- case _ =>
106- 0
107- }
108- if ((0 >= amount))
109- then throw("Can't withdraw negative amount")
110- else if ((amount > currentAmount))
111- then throw("Not enough balance!")
112- else if ((flag > 0))
113- then throw("Only one vote per project is possible!")
114- else WriteSet([DataEntry(xxxInvestorBalance, (currentAmount - amount)), DataEntry(xxxStartupVotes, (currentVotes + 1)), DataEntry(flagKey, 1), DataEntry(xxxStartupFund, (currentFund + amount))])
20+ else ScriptResult(WriteSet([DataEntry(currentKey, newAmount)]), TransferSet([ScriptTransfer(i.caller, amount, unit)]))
11521 }
11622
11723
11824 @Verifier(tx)
11925 func verify () = match tx {
120- case d: SetScriptTransaction =>
121- sigVerify(tx.bodyBytes, tx.proofs[0], base58'6VmvRNSSafWsdNYddeAf3MgEa4RSgGvHe97sxZznf5mE')
26+ case _: DataTransaction =>
27+ false
28+ case _: SetScriptTransaction =>
29+ false
12230 case _ =>
123- false
31+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
12432 }
12533

github/deemru/w8io/873ac7e 
25.30 ms