tx · CAR2m5ja2HCzeMUZAmpv77SL8vSFGqZuM9MdAF16ZAmY

3N7a7sTSKaE621QewSqQcL1mUbknJjnLkZc:  -0.01000000 Waves

2021.10.22 00:10 [1756577] smart account 3N7a7sTSKaE621QewSqQcL1mUbknJjnLkZc > SELF 0.00000000 Waves

{ "type": 13, "id": "CAR2m5ja2HCzeMUZAmpv77SL8vSFGqZuM9MdAF16ZAmY", "fee": 1000000, "feeAssetId": null, "timestamp": 1634850681834, "version": 2, "chainId": 84, "sender": "3N7a7sTSKaE621QewSqQcL1mUbknJjnLkZc", "senderPublicKey": "6LrPmGtwuADhwHYcxBouLzwfSTGgucbwYG5Pja7LUrcd", "proofs": [ "5riiM1BhNncg8YjPLumhrbAoP9QUwHB72zvTST6vgdBZS7JBkDCNis9ybp3cN1b5Rzc5yXV21aZCYAgcpjJ14Sq7" ], "script": "base64:AAIFAAAAAAAAABcIAhIECgIIGRIDCgEBEgMKAQESAwoBAQAAABUAAAAACm9mZmVySWRLZXkCAAAADSRPRkZFUl9OVU1CRVIAAAAAB3Rlc3RLZXkCAAAABSRURVNUAAAAAA9vZmZlck9wZW5TdGF0dXMAAAAAAAAAAAEAAAAAE29mZmVyQ2FuY2VsZWRTdGF0dXMAAAAAAAAAAAIAAAAAE29mZmVyQWNjZXB0ZWRTdGF0dXMAAAAAAAAAAAMAAAAAE29mZmVyUmVqZWN0ZWRTdGF0dXMAAAAAAAAAAAQAAAAAEndhdmVzU3RhbmRJblN0cmluZwIAAAAFV0FWRVMAAAAAFndhdmVzU3RhbmRJbkJ5dGVWZWN0b3IJAAGbAAAAAQUAAAASd2F2ZXNTdGFuZEluU3RyaW5nAAAAABJ3YXZlc1N0YW5kSW5CYXNlNjQJAAJaAAAAAQUAAAAWd2F2ZXNTdGFuZEluQnl0ZVZlY3RvcgEAAAARZ2V0T2ZmZXJTdGF0dXNLZXkAAAABAAAAB29mZmVySWQJAAEsAAAAAgkAAaQAAAABBQAAAAdvZmZlcklkAgAAAAdfc3RhdHVzAQAAABZnZXRPZmZlckFkZHJlc3NGcm9tS2V5AAAAAQAAAAdvZmZlcklkCQABLAAAAAIJAAGkAAAAAQUAAAAHb2ZmZXJJZAIAAAAFX2Zyb20BAAAAFGdldE9mZmVyQWRkcmVzc1RvS2V5AAAAAQAAAAdvZmZlcklkCQABLAAAAAIJAAGkAAAAAQUAAAAHb2ZmZXJJZAIAAAADX3RvAQAAABdnZXRPZmZlck9mZmVyZWRBc3NldEtleQAAAAIAAAAHb2ZmZXJJZAAAAAppdGVtTnVtYmVyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAB29mZmVySWQCAAAAAV8JAAGkAAAAAQUAAAAKaXRlbU51bWJlcgIAAAARX29mZmVyZWRfYXNzZXRfaWQBAAAAGGdldE9mZmVyT2ZmZXJlZEFtb3VudEtleQAAAAIAAAAHb2ZmZXJJZAAAAAppdGVtTnVtYmVyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAB29mZmVySWQCAAAAAV8JAAGkAAAAAQUAAAAKaXRlbU51bWJlcgIAAAAVX29mZmVyZWRf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AAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACm9mZmVySWRLZXkFAAAAB29mZmVySWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRPZmZlclN0YXR1c0tleQAAAAEFAAAAB29mZmVySWQFAAAAD29mZmVyT3BlblN0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAWZ2V0T2ZmZXJBZGRyZXNzRnJvbUtleQAAAAEFAAAAB29mZmVySWQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAUZ2V0T2ZmZXJBZGRyZXNzVG9LZXkAAAABBQAAAAdvZmZlcklkBQAAAAl0b0FkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAF2dldE9mZmVyT2ZmZXJlZEFzc2V0S2V5AAAAAgUAAAAHb2ZmZXJJZAAAAAAAAAAAAAkAAloAAAABCQEAAAALdmFsdWVPckVsc2UAAAACCAUAAAAMZmlyc3RQYXltZW50AAAAB2Fzc2V0SWQFAAAAFndhdmVzU3RhbmRJbkJ5dGVWZWN0b3IJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABhnZXRPZmZlck9mZmVyZWRBbW91bnRLZXkAAAACBQAAAAdvZmZlcklkAAAAAAAAAAAACAUAAAAMZmlyc3RQYXltZW50AAAABmFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAVZ2V0T2ZmZXJBc2tlZEFzc2V0S2V5AAAAAgUAAAAHb2ZmZXJJZAAAAAAAAAAAAAkAAloAAAABCQEAAAAadHJ5R2V0QXNzZXRJZEZyb21Bc3NldExpc3QAAAABBQAAAAZhc3NldDAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZnZXRPZmZlckFza2VkQW1vdW50S2V5AAAAAgUAAAAHb2ZmZXJJZAAAAAAAAAAAAAkBAAAAGXRyeUdldEFtb3VudEZyb21Bc3NldExpc3QAAAABBQAAAAZhc3NldDAFAAAAA25pbAAAAAFpAQAAAAtjYW5jZWxPZmZlcgAAAAEAAAAHb2ZmZXJJZAQAAAALb2ZmZXJTdGF0dXMJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldE9mZmVyU3RhdHVzS2V5AAAAAQUAAAAHb2ZmZXJJZAMJAQAAAAIhPQAAAAIFAAAAC29mZmVyU3RhdHVzBQAAAA9vZmZlck9wZW5TdGF0dXMJAAACAAAAAQIAAAAZb2ZmZXIgc3RhdHVzIG11c3QgYmUgb3BlbgQAAAALYWRkcmVzc0Zyb20JAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAQAAABZnZXRPZmZlckFkZHJlc3NGcm9tS2V5AAAAAQUAAAAHb2ZmZXJJZAQAAAAJY2FsbGVyU3RyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAACIT0AAAACBQAAAAthZGRyZXNzRnJvbQUAAAAJY2FsbGVyU3RyCQAAAgAAAAECAAAAHG9mZmVyIG11c3QgYmUgbWFkZSBieSBjYWxsZXIJAQAAAAlkcm9wT2ZmZXIAAAACBQAAAAdvZmZlcklkBQAAABNvZmZlckNhbmNlbGVkU3RhdHVzAAAAAWkBAAAAC2FjY2VwdE9mZmVyAAAAAQAAAAdvZmZlcklkBAAAAAtvZmZlclN0YXR1cwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0T2ZmZXJTdGF0dXNLZXkAAAABBQAAAAdvZmZlcklkAwkBAAAAAiE9AAAAAgUAAAALb2ZmZXJTdGF0dXMFAAAAD29mZmVyT3BlblN0YXR1cwkAAAIAAAABAgAAABlvZmZlciBzdGF0dXMgbXVzdCBiZSBvcGVuBAAAAAlhZGRyZXNzVG8JAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAQAAABRnZXRPZmZlckFkZHJlc3NUb0tleQAAAAEFAAAAB29mZmVySWQEAAAACWNhbGxlclN0cgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAAiE9AAAAAgUAAAAJYWRkcmVzc1RvBQAAAAljYWxsZXJTdHIJAAACAAAAAQIAAAAcb2ZmZXIgbXVzdCBiZSBtYWRlIHRvIGNhbGxlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldE9mZmVyU3RhdHVzS2V5AAAAAQUAAAAHb2ZmZXJJZAUAAAATb2ZmZXJBY2NlcHRlZFN0YXR1cwUAAAADbmlsAAAAAWkBAAAAC3JlamVjdE9mZmVyAAAAAQAAAAdvZmZlcklkBAAAAAtvZmZlclN0YXR1cwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0T2ZmZXJTdGF0dXNLZXkAAAABBQAAAAdvZmZlcklkAwkBAAAAAiE9AAAAAgUAAAALb2ZmZXJTdGF0dXMFAAAAD29mZmVyT3BlblN0YXR1cwkAAAIAAAABAgAAABlvZmZlciBzdGF0dXMgbXVzdCBiZSBvcGVuBAAAAAlhZGRyZXNzVG8JAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAQAAABRnZXRPZmZlckFkZHJlc3NUb0tleQAAAAEFAAAAB29mZmVySWQEAAAACWNhbGxlclN0cgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAAiE9AAAAAgUAAAAJYWRkcmVzc1RvBQAAAAljYWxsZXJTdHIJAAACAAAAAQIAAAAcb2ZmZXIgbXVzdCBiZSBtYWRlIHRvIGNhbGxlcgkBAAAACWRyb3BPZmZlcgAAAAIFAAAAB29mZmVySWQFAAAAE29mZmVyUmVqZWN0ZWRTdGF0dXMAAAAAcf6/uA==", "height": 1756577, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5F3R3xJbF2ppjFAHPNKT66mK4ratLMndQXkW9QWQBA2B Next: trJuHoX1NitFuvuN9RLQ4nq5rCwRBmH4qXBDwrvjfFu Diff:
OldNewDifferences
1313
1414 let offerRejectedStatus = 4
1515
16-let wavesStandInByteVector = toBytes("WAVES")
16+let wavesStandInString = "WAVES"
17+
18+let wavesStandInByteVector = toBytes(wavesStandInString)
19+
20+let wavesStandInBase64 = toBase64String(wavesStandInByteVector)
1721
1822 func getOfferStatusKey (offerId) = (toString(offerId) + "_status")
1923
4751 }
4852
4953
54+func tryGetAssetIdFromAssetList (asset) = {
55+ let res = match asset[0] {
56+ case b: String =>
57+ fromBase64String(b)
58+ case _ =>
59+ throw("must have an assetId")
60+ }
61+ res
62+ }
63+
64+
65+func tryGetAmountFromAssetList (asset) = {
66+ let res = match asset[1] {
67+ case b: Int =>
68+ b
69+ case _ =>
70+ throw("must have an amount")
71+ }
72+ res
73+ }
74+
75+
5076 func tryGetAssetId (offerId,itemNumber) = {
5177 let val = fromBase64String(getStringValue(this, getOfferOfferedAssetKey(offerId, itemNumber)))
5278 if ((val == wavesStandInByteVector))
6995 let firstPayment = value(i.payments[0])
7096 if (!(isDefined(firstPayment)))
7197 then throw("no payment")
72- else [IntegerEntry(offerIdKey, offerId), IntegerEntry(getOfferStatusKey(offerId), offerOpenStatus), StringEntry(getOfferAddressFromKey(offerId), toBase58String(i.caller.bytes)), StringEntry(getOfferAddressToKey(offerId), toAddress), StringEntry(getOfferOfferedAssetKey(offerId, 0), toBase64String(valueOrElse(firstPayment.assetId, wavesStandInByteVector))), IntegerEntry(getOfferOfferedAmountKey(offerId, 0), firstPayment.amount), StringEntry(getOfferOfferedAssetKey(offerId, 0), toBase64String(valueOrElse(firstPayment.assetId, wavesStandInByteVector))), IntegerEntry(getOfferOfferedAmountKey(offerId, 0), firstPayment.amount)]
98+ else [IntegerEntry(offerIdKey, offerId), IntegerEntry(getOfferStatusKey(offerId), offerOpenStatus), StringEntry(getOfferAddressFromKey(offerId), toBase58String(i.caller.bytes)), StringEntry(getOfferAddressToKey(offerId), toAddress), StringEntry(getOfferOfferedAssetKey(offerId, 0), toBase64String(valueOrElse(firstPayment.assetId, wavesStandInByteVector))), IntegerEntry(getOfferOfferedAmountKey(offerId, 0), firstPayment.amount), StringEntry(getOfferAskedAssetKey(offerId, 0), toBase64String(tryGetAssetIdFromAssetList(asset0))), IntegerEntry(getOfferAskedAmountKey(offerId, 0), tryGetAmountFromAssetList(asset0))]
7399 }
74100
75101
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let offerIdKey = "$OFFER_NUMBER"
55
66 let testKey = "$TEST"
77
88 let offerOpenStatus = 1
99
1010 let offerCanceledStatus = 2
1111
1212 let offerAcceptedStatus = 3
1313
1414 let offerRejectedStatus = 4
1515
16-let wavesStandInByteVector = toBytes("WAVES")
16+let wavesStandInString = "WAVES"
17+
18+let wavesStandInByteVector = toBytes(wavesStandInString)
19+
20+let wavesStandInBase64 = toBase64String(wavesStandInByteVector)
1721
1822 func getOfferStatusKey (offerId) = (toString(offerId) + "_status")
1923
2024
2125 func getOfferAddressFromKey (offerId) = (toString(offerId) + "_from")
2226
2327
2428 func getOfferAddressToKey (offerId) = (toString(offerId) + "_to")
2529
2630
2731 func getOfferOfferedAssetKey (offerId,itemNumber) = (((toString(offerId) + "_") + toString(itemNumber)) + "_offered_asset_id")
2832
2933
3034 func getOfferOfferedAmountKey (offerId,itemNumber) = (((toString(offerId) + "_") + toString(itemNumber)) + "_offered_asset_amount")
3135
3236
3337 func getOfferAskedAssetKey (offerId,itemNumber) = (((toString(offerId) + "_") + toString(itemNumber)) + "_asked_asset_id")
3438
3539
3640 func getOfferAskedAmountKey (offerId,itemNumber) = (((toString(offerId) + "_") + toString(itemNumber)) + "_asked_asset_amount")
3741
3842
3943 func tryGetInteger (key) = {
4044 let val = match getInteger(this, key) {
4145 case b: Int =>
4246 b
4347 case _ =>
4448 0
4549 }
4650 val
4751 }
4852
4953
54+func tryGetAssetIdFromAssetList (asset) = {
55+ let res = match asset[0] {
56+ case b: String =>
57+ fromBase64String(b)
58+ case _ =>
59+ throw("must have an assetId")
60+ }
61+ res
62+ }
63+
64+
65+func tryGetAmountFromAssetList (asset) = {
66+ let res = match asset[1] {
67+ case b: Int =>
68+ b
69+ case _ =>
70+ throw("must have an amount")
71+ }
72+ res
73+ }
74+
75+
5076 func tryGetAssetId (offerId,itemNumber) = {
5177 let val = fromBase64String(getStringValue(this, getOfferOfferedAssetKey(offerId, itemNumber)))
5278 if ((val == wavesStandInByteVector))
5379 then unit
5480 else val
5581 }
5682
5783
5884 func dropOffer (offerId,dropStatus) = {
5985 let addressFrom = Address(fromBase58String(getStringValue(this, getOfferAddressFromKey(offerId))))
6086 let assetId = tryGetAssetId(offerId, 0)
6187 let assetAmount = tryGetInteger(getOfferOfferedAmountKey(offerId, 0))
6288 [IntegerEntry(getOfferStatusKey(offerId), dropStatus), ScriptTransfer(addressFrom, assetAmount, assetId)]
6389 }
6490
6591
6692 @Callable(i)
6793 func createOffer (toAddress,asset0) = {
6894 let offerId = (tryGetInteger(offerIdKey) + 1)
6995 let firstPayment = value(i.payments[0])
7096 if (!(isDefined(firstPayment)))
7197 then throw("no payment")
72- else [IntegerEntry(offerIdKey, offerId), IntegerEntry(getOfferStatusKey(offerId), offerOpenStatus), StringEntry(getOfferAddressFromKey(offerId), toBase58String(i.caller.bytes)), StringEntry(getOfferAddressToKey(offerId), toAddress), StringEntry(getOfferOfferedAssetKey(offerId, 0), toBase64String(valueOrElse(firstPayment.assetId, wavesStandInByteVector))), IntegerEntry(getOfferOfferedAmountKey(offerId, 0), firstPayment.amount), StringEntry(getOfferOfferedAssetKey(offerId, 0), toBase64String(valueOrElse(firstPayment.assetId, wavesStandInByteVector))), IntegerEntry(getOfferOfferedAmountKey(offerId, 0), firstPayment.amount)]
98+ else [IntegerEntry(offerIdKey, offerId), IntegerEntry(getOfferStatusKey(offerId), offerOpenStatus), StringEntry(getOfferAddressFromKey(offerId), toBase58String(i.caller.bytes)), StringEntry(getOfferAddressToKey(offerId), toAddress), StringEntry(getOfferOfferedAssetKey(offerId, 0), toBase64String(valueOrElse(firstPayment.assetId, wavesStandInByteVector))), IntegerEntry(getOfferOfferedAmountKey(offerId, 0), firstPayment.amount), StringEntry(getOfferAskedAssetKey(offerId, 0), toBase64String(tryGetAssetIdFromAssetList(asset0))), IntegerEntry(getOfferAskedAmountKey(offerId, 0), tryGetAmountFromAssetList(asset0))]
7399 }
74100
75101
76102
77103 @Callable(i)
78104 func cancelOffer (offerId) = {
79105 let offerStatus = tryGetInteger(getOfferStatusKey(offerId))
80106 if ((offerStatus != offerOpenStatus))
81107 then throw("offer status must be open")
82108 else {
83109 let addressFrom = getStringValue(this, getOfferAddressFromKey(offerId))
84110 let callerStr = toBase58String(i.caller.bytes)
85111 if ((addressFrom != callerStr))
86112 then throw("offer must be made by caller")
87113 else dropOffer(offerId, offerCanceledStatus)
88114 }
89115 }
90116
91117
92118
93119 @Callable(i)
94120 func acceptOffer (offerId) = {
95121 let offerStatus = tryGetInteger(getOfferStatusKey(offerId))
96122 if ((offerStatus != offerOpenStatus))
97123 then throw("offer status must be open")
98124 else {
99125 let addressTo = getStringValue(this, getOfferAddressToKey(offerId))
100126 let callerStr = toBase58String(i.caller.bytes)
101127 if ((addressTo != callerStr))
102128 then throw("offer must be made to caller")
103129 else [IntegerEntry(getOfferStatusKey(offerId), offerAcceptedStatus)]
104130 }
105131 }
106132
107133
108134
109135 @Callable(i)
110136 func rejectOffer (offerId) = {
111137 let offerStatus = tryGetInteger(getOfferStatusKey(offerId))
112138 if ((offerStatus != offerOpenStatus))
113139 then throw("offer status must be open")
114140 else {
115141 let addressTo = getStringValue(this, getOfferAddressToKey(offerId))
116142 let callerStr = toBase58String(i.caller.bytes)
117143 if ((addressTo != callerStr))
118144 then throw("offer must be made to caller")
119145 else dropOffer(offerId, offerRejectedStatus)
120146 }
121147 }
122148
123149

github/deemru/w8io/873ac7e 
34.08 ms