tx · AiVEe5nbHxYRxwBwFtPTtgFkMXZVwZCo5RAvNFtNRGY3

3PDtMM7om4D6gUzut79ye53uo2mkGq5f8vq:  -0.10000000 Waves

2021.03.09 11:29 [2494573] smart account 3PDtMM7om4D6gUzut79ye53uo2mkGq5f8vq > SELF 0.00000000 Waves

{ "type": 13, "id": "AiVEe5nbHxYRxwBwFtPTtgFkMXZVwZCo5RAvNFtNRGY3", "fee": 10000000, "feeAssetId": null, "timestamp": 1615278613466, "version": 1, "sender": "3PDtMM7om4D6gUzut79ye53uo2mkGq5f8vq", "senderPublicKey": "8G42wsCkK7phPm8oV71nWYsLTccZzA41Dqw7zQg1srkS", "proofs": [ "4CaDqtYrjfQu4UmJnnDVdqLRH6ZEtDjtwVWgiYLpPu7vS8jZCLRxkUKrPkGdH6GtGj3G7MegmmvuW4npWePF6j9Z" ], "script": "base64:AAIDAAAAAAAAAA0IARIECgICARIDCgEIAAAAHgAAAAAETk9ORQAAAAAAAAAAAAAAAAADTkVXAAAAAAAAAAABAAAAAAlDT01QTEVURUQAAAAAAAAAAAIAAAAAB0FQUFJPVkUAAAAAAAAAAAEAAAAABlVOTE9DSwAAAAAAAAAAAgAAAAAITE9DS1RZUEUAAAAAAAAAAAEAAAAAClVOTE9DS1RZUEUAAAAAAAAAAAIBAAAAD2dldEludGVnZXJCeUtleQAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAF2BQAAAAckbWF0Y2gwBQAAAAF2AAAAAAAAAAAAAQAAAA1nZXRCeXRlc0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQcAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAApCeXRlVmVjdG9yBAAAAAF2BQAAAAckbWF0Y2gwBQAAAAF2AQAAAAPQAAABAAAADmdldFN0cmluZ0J5S2V5AAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXYFAAAAByRtYXRjaDAFAAAAAXYCAAAAAAAAAAAKQXNzZXRJZEtleQIAAAAIYXNzZXRfaWQAAAAACkZpcnN0UnFLZXkCAAAACGZpcnN0X3JxAAAAAAlMYXN0UnFLZXkCAAAAB2xhc3RfcnEAAAAAEE5lYnVsYUFkZHJlc3NLZXkCAAAADm5lYnVsYV9hZGRyZXNzAQAAAAxnZXROZXh0UnFLZXkAAAABAAAAAmlkCQABLAAAAAICAAAACG5leHRfcnFfBQAAAAJpZAEAAAAMZ2V0UHJldlJxS2V5AAAAAQAAAAJpZAkAASwAAAACAgAAAAhwcmV2X3JxXwUAAAACaWQBAAAAEGdldFJxUmVjZWl2ZXJLZXkAAAABAAAAAmlkCQABLAAAAAICAAAADHJxX3JlY2VpdmVyXwUAAAACaWQBAAAADmdldFJxQW1vdW50S2V5AAAAAQAAAAJpZAkAASwAAAACAgAAAApycV9hbW91bnRfBQAAAAJpZAEAAAAOZ2V0UnFTdGF0dXNLZXkAAAABAAAAAmlkCQABLAAAAAICAAAACnJxX3N0YXR1c18FAAAAAmlkAQAAAAxnZXRScVR5cGVLZXkAAAABAAAAAmlkCQABLAAAAAICAAAACHJxX3R5cGVfBQAAAAJpZAAAAAANbmVidWxhQWRkcmVzcwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABBQAAABBOZWJ1bGFBZGRyZXNzS2V5AAAAAAdhc3NldElkCQACWQAAAAEJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAACkFzc2V0SWRLZXkAAAAAB2ZpcnN0UnEJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEFAAAACkZpcnN0UnFLZXkAAAAABmxhc3RScQkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQUAAAAJTGFzdFJxS2V5AQAAAAlnZXROZXh0UnEAAAABAAAAAmlkCQEAAAAOZ2V0U3RyaW5nQnlLZXkAAAABCQEAAAAMZ2V0TmV4dFJxS2V5AAAAAQUAAAACaWQBAAAACWdldFByZXZScQAAAAEAAAACaWQJAQAAAA5nZXRTdHJpbmdCeUtleQAAAAEJAQAAAAxnZXRQcmV2UnFLZXkAAAABBQAAAAJpZAEAAAALZ2V0UnFBbW91bnQAAAABAAAAAmlkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADmdldFJxQW1vdW50S2V5AAAAAQUAAAACaWQBAAAAC2dldFJxU3RhdHVzAAAAAQAAAAJpZAkBAAAAD2dldEludGVnZXJCeUtleQAAAAEJAQAAAA5nZXRScVN0YXR1c0tleQAAAAEFAAAAAmlkAQAAAAlnZXRScVR5cGUAAAABAAAAAmlkCQEAAAAPZ2V0SW50ZWdlckJ5S2V5AAAAAQkBAAAADGdldFJxVHlwZUtleQAAAAEFAAAAAmlkAQAAAA1nZXRScVJlY2VpdmVyAAAAAQAAAAJpZAkBAAAADmdldFN0cmluZ0J5S2V5AAAAAQkBAAAAEGdldFJxUmVjZWl2ZXJLZXkAAAABBQAAAAJpZAAAAAIAAAABaQEAAAAKYXR0YWNoRGF0YQAA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", "chainId": 87, "height": 2494573, "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+let NONE = 0
5+
6+let NEW = 1
7+
8+let COMPLETED = 2
9+
10+let APPROVE = 1
11+
12+let UNLOCK = 2
13+
14+let LOCKTYPE = 1
15+
16+let UNLOCKTYPE = 2
17+
18+func getIntegerByKey (key) = match getInteger(this, key) {
19+ case v: Int =>
20+ v
21+ case _ =>
22+ 0
23+}
24+
25+
26+func getBytesByKey (key) = match getBinary(this, key) {
27+ case v: ByteVector =>
28+ v
29+ case _ =>
30+ base58'2CsAf'
31+}
32+
33+
34+func getStringByKey (key) = match getString(this, key) {
35+ case v: String =>
36+ v
37+ case _ =>
38+ ""
39+}
40+
41+
42+let AssetIdKey = "asset_id"
43+
44+let FirstRqKey = "first_rq"
45+
46+let LastRqKey = "last_rq"
47+
48+let NebulaAddressKey = "nebula_address"
49+
50+func getNextRqKey (id) = ("next_rq_" + id)
51+
52+
53+func getPrevRqKey (id) = ("prev_rq_" + id)
54+
55+
56+func getRqReceiverKey (id) = ("rq_receiver_" + id)
57+
58+
59+func getRqAmountKey (id) = ("rq_amount_" + id)
60+
61+
62+func getRqStatusKey (id) = ("rq_status_" + id)
63+
64+
65+func getRqTypeKey (id) = ("rq_type_" + id)
66+
67+
68+let nebulaAddress = addressFromStringValue(getStringByKey(NebulaAddressKey))
69+
70+let assetId = fromBase58String(getStringByKey(AssetIdKey))
71+
72+let firstRq = getStringByKey(FirstRqKey)
73+
74+let lastRq = getStringByKey(LastRqKey)
75+
76+func getNextRq (id) = getStringByKey(getNextRqKey(id))
77+
78+
79+func getPrevRq (id) = getStringByKey(getPrevRqKey(id))
80+
81+
82+func getRqAmount (id) = getIntegerByKey(getRqAmountKey(id))
83+
84+
85+func getRqStatus (id) = getIntegerByKey(getRqStatusKey(id))
86+
87+
88+func getRqType (id) = getIntegerByKey(getRqTypeKey(id))
89+
90+
91+func getRqReceiver (id) = getStringByKey(getRqReceiverKey(id))
92+
93+
94+@Callable(i)
95+func attachData (v,vPulseId) = {
96+ let action = toInt(take(v, 8))
97+ let rqId = toBase58String(take(drop(v, 8), 32))
98+ if ((i.caller != nebulaAddress))
99+ then throw("invalid sender")
100+ else if ((action == UNLOCK))
101+ then {
102+ let amount = toInt(take(drop(v, 40), 8))
103+ if ((getRqStatus(rqId) != NONE))
104+ then throw("rq is exist")
105+ else {
106+ let recipient = take(drop(v, 48), 26)
107+ ScriptResult(WriteSet([DataEntry(getRqStatusKey(rqId), COMPLETED), DataEntry(getRqAmountKey(rqId), amount), DataEntry(getRqTypeKey(rqId), UNLOCKTYPE)]), TransferSet([ScriptTransfer(Address(recipient), amount, assetId)]))
108+ }
109+ }
110+ else if ((action == APPROVE))
111+ then if ((getRqStatus(rqId) == NONE))
112+ then throw("rq not found")
113+ else if ((getRqStatus(rqId) == COMPLETED))
114+ then throw("rq was approved")
115+ else {
116+ let nextRq = getNextRq(rqId)
117+ let prevRq = getPrevRq(rqId)
118+ WriteSet([DataEntry(FirstRqKey, if ((firstRq == rqId))
119+ then getNextRq(rqId)
120+ else firstRq), DataEntry(LastRqKey, if ((lastRq == rqId))
121+ then getPrevRq(rqId)
122+ else lastRq), DataEntry(getNextRqKey(prevRq), nextRq), DataEntry(getPrevRqKey(nextRq), prevRq), DataEntry(getRqStatusKey(rqId), COMPLETED)])
123+ }
124+ else throw("invalid action type")
125+ }
126+
127+
128+
129+@Callable(i)
130+func createTransferWrapRq (receiver) = {
131+ let pmt = value(i.payment)
132+ let rqId = toBase58String(i.transactionId)
133+ if ((pmt.assetId != assetId))
134+ then throw("invalid asset in payments")
135+ else WriteSet([DataEntry(FirstRqKey, if ((firstRq == ""))
136+ then rqId
137+ else firstRq), DataEntry(LastRqKey, rqId), DataEntry(getNextRqKey(lastRq), rqId), DataEntry(getPrevRqKey(rqId), lastRq), DataEntry(getRqAmountKey(rqId), pmt.amount), DataEntry(getRqStatusKey(rqId), NEW), DataEntry(getRqReceiverKey(rqId), receiver), DataEntry(getRqTypeKey(rqId), LOCKTYPE)])
138+ }
139+
140+

github/deemru/w8io/6500d08 
26.38 ms