tx · 4Jq1vJLz9Yr3MV2zKezdtBdM9oHKV95ck8TjqKcpF2p2

3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV:  -0.01000000 Waves

2021.12.11 21:13 [1829921] smart account 3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV > SELF 0.00000000 Waves

{ "type": 13, "id": "4Jq1vJLz9Yr3MV2zKezdtBdM9oHKV95ck8TjqKcpF2p2", "fee": 1000000, "feeAssetId": null, "timestamp": 1639246398308, "version": 2, "chainId": 84, "sender": "3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV", "senderPublicKey": "5amLtMwixiEesBDKPy9dkFWntG2fNxhTs5n69JbQE9F7", "proofs": [ "SELb4a6j7BNVZy1SmcUvrRN1SAgs2wMJ66wMgqSuBm4iE1LNinikKLCUEPd29qysSFYajufze9GXb4VkZgKbuz2" ], "script": "base64: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", "height": 1829921, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GZBXMGoGGfhso1RoFvizUwrFNtXiPCVceEKnTx5k2nma Next: DCreqYr21LwHDX35H1TZ2QjQMo41tLsVpZG76JhRAmzz Diff:
OldNewDifferences
101101 }
102102 let balance = assetBalance(airdrop, token)
103103 let sellamount = 1000
104- let price1 = 1
105- let price2 = 10
104+ let price1 = (1 * 100000000)
105+ let price2 = (2 * 100000000)
106106 let callerAdress = Address(i.caller.bytes)
107107 let balanceok = if ((balance >= sellamount))
108108 then true
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let token = base58'GZc7eKnq2KJwqetRmUzSqr2ZaCGseDZufSocz83sUNoo'
55
66 let airdrop = Address(base58'3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV')
77
88 let teamAdress = Address(base58'3MovsLjXpJr9HD2vBqmAf7Gze6jwuRxX1fX')
99
1010 @Callable(i)
1111 func reset () = [DeleteEntry(toBase58String(i.caller.bytes)), IntegerEntry("burnt", 0), IntegerEntry("dropped", 0), IntegerEntry("teamgift", 0), IntegerEntry("burningstage", 0)]
1212
1313
1414
1515 @Callable(i)
1616 func call (id58) = {
1717 let currenttime = match blockInfoByHeight(height) {
1818 case block: BlockInfo =>
1919 block.timestamp
2020 case _ =>
2121 throw("Can't find block")
2222 }
2323 let balance = assetBalance(airdrop, token)
2424 let burnamount = match getInteger("burningstage") {
2525 case a: Int =>
2626 if (if ((getIntegerValue("burningstage") == 0))
2727 then (currenttime > 1639131654752)
2828 else false)
2929 then fraction(balance, 10, 100)
3030 else 0
3131 case _ =>
3232 throw("no burningstage")
3333 }
3434 let dropamount = 1000
3535 let teamgift = 10
3636 let trid = fromBase58String(id58)
3737 let callerAdress = Address(i.caller.bytes)
3838 let deadline = 1639230864311
3939 let isenough = if ((balance > dropamount))
4040 then true
4141 else throw("not enough")
4242 if ((isenough == isenough))
4343 then {
4444 let trexists = match transferTransactionById(trid) {
4545 case ttx: TransferTransaction =>
4646 true
4747 case _ =>
4848 false
4949 }
5050 let trtime = match transferTransactionById(trid) {
5151 case ttx: TransferTransaction =>
5252 ttx.timestamp
5353 case _ =>
5454 9999999999999
5555 }
5656 let trsender = match transferTransactionById(trid) {
5757 case ttx: TransferTransaction =>
5858 ttx.sender
5959 case _ =>
6060 airdrop
6161 }
6262 let received = if ((take(valueOrElse(getString(toBase58String(i.caller.bytes)), ""), 8) == "received"))
6363 then true
6464 else false
6565 let isprooved = if (if (if ((trtime > deadline))
6666 then true
6767 else (callerAdress != trsender))
6868 then true
6969 else received)
7070 then false
7171 else true
7272 let result = if (trexists)
7373 then if ((trtime > deadline))
7474 then ("transaction is out of time range: " + toString(trtime))
7575 else ("" + (if ((callerAdress != trsender))
7676 then ((("it is incorrect sender: " + toString(callerAdress)) + " / ") + toString(trsender))
7777 else ("" + (if (received)
7878 then getStringValue(toBase58String(i.caller.bytes))
7979 else ("" + (if (isprooved)
8080 then ("received in " + toString(currenttime))
8181 else ""))))))
8282 else "cant find transaction"
8383 if (isprooved)
8484 then if ((burnamount > 0))
8585 then [ScriptTransfer(callerAdress, dropamount, token), ScriptTransfer(teamAdress, teamgift, token), StringEntry(toBase58String(i.caller.bytes), result), IntegerEntry("dropped", (getIntegerValue("dropped") + dropamount)), IntegerEntry("teamgift", (getIntegerValue("teamgift") + teamgift))]
8686 else [ScriptTransfer(callerAdress, dropamount, token), ScriptTransfer(teamAdress, teamgift, token), StringEntry(toBase58String(i.caller.bytes), result), IntegerEntry("dropped", (getIntegerValue("dropped") + dropamount)), IntegerEntry("teamgift", (getIntegerValue("teamgift") + teamgift))]
8787 else [StringEntry(toBase58String(i.caller.bytes), result)]
8888 }
8989 else throw("Strict value is not equal to itself.")
9090 }
9191
9292
9393
9494 @Callable(i)
9595 func buy () = {
9696 let currenttime = match blockInfoByHeight(height) {
9797 case block: BlockInfo =>
9898 block.timestamp
9999 case _ =>
100100 throw("Can't find block")
101101 }
102102 let balance = assetBalance(airdrop, token)
103103 let sellamount = 1000
104- let price1 = 1
105- let price2 = 10
104+ let price1 = (1 * 100000000)
105+ let price2 = (2 * 100000000)
106106 let callerAdress = Address(i.caller.bytes)
107107 let balanceok = if ((balance >= sellamount))
108108 then true
109109 else false
110110 let callerData = valueOrElse(getString(toBase58String(i.caller.bytes)), "")
111111 let callerReceived = if ((take(callerData, 8) == "received"))
112112 then true
113113 else false
114114 let callerBuylevel = if (if (callerReceived)
115115 then (size(split(callerData, "|")) == 1)
116116 else false)
117117 then 0
118118 else if (if (callerReceived)
119119 then (size(split(callerData, "|")) == 2)
120120 else false)
121121 then 1
122122 else 2
123123 let callerPrice = if ((callerBuylevel == 0))
124124 then price1
125125 else if ((callerBuylevel == 1))
126126 then price2
127127 else 0
128128 let pmtok = if ((size(i.payments) == 1))
129129 then if (if (!(isDefined(i.payments[0].assetId)))
130130 then (i.payments[0].amount >= callerPrice)
131131 else false)
132132 then true
133133 else false
134134 else false
135135 let mess = if (!(callerReceived))
136136 then "not prooved for buy"
137137 else ("" + (if (!(pmtok))
138138 then "not enough payment"
139139 else ("" + (if (!(balanceok))
140140 then "ballance empty "
141141 else ""))))
142142 let datarecs = split(callerData, "|")
143143 let newdata = if (callerReceived)
144144 then datarecs[0]
145145 else ("" + (if ((callerBuylevel == 0))
146146 then "|bought1"
147147 else ("" + (if ((callerBuylevel == 1))
148148 then "|bought1|bought2"
149149 else ""))))
150150 let deal = if (if (if (balanceok)
151151 then callerReceived
152152 else false)
153153 then pmtok
154154 else false)
155155 then true
156156 else false
157157 if (deal)
158158 then [StringEntry(toBase58String(i.caller.bytes), newdata), ScriptTransfer(teamAdress, callerPrice, unit), ScriptTransfer(callerAdress, sellamount, token)]
159159 else [StringEntry((toBase58String(i.caller.bytes) + "_buy"), mess)]
160160 }
161161
162162

github/deemru/w8io/026f985 
37.63 ms