tx · E4i7jQ77KC2GTByYVntVGYsKWwa59F82YqRQiVLZyTyC

3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx:  -0.01000000 Waves

2023.02.11 09:45 [2444614] smart account 3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx > SELF 0.00000000 Waves

{ "type": 13, "id": "E4i7jQ77KC2GTByYVntVGYsKWwa59F82YqRQiVLZyTyC", "fee": 1000000, "feeAssetId": null, "timestamp": 1676098066831, "version": 2, "chainId": 84, "sender": "3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx", "senderPublicKey": "EKZmHJ5bK3qKKgRdq8rAamt9qrDbVMLARzRqXoQW258v", "proofs": [ "53mAV5nbyZsm3b6S7pcS8h6fWP2WeYqAAkCzXkQfvtfSazBei7PJrSJVLgsvoTj6oNMiTTDuxfUr8RzHS7Qn1Daj" ], "script": "base64:BgIcCAISCwoJCAgICAgBCAgIEgQKAggIEgUKAwgICAsACXNlcGFyYXRvcgIBXwAEa0J1eQIDYnV5AAZrUHJpY2UCBXByaWNlAAVrU2VsbAIEc2VsbAASbWF4QXVjdGlvbkR1cmF0aW9uAAcABXRlYW1zASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgAFV0FWRVMBAAAEa0JpZAIDYmlkAAxzdGF0dXNGb3JORlQJAJYKBAIET1BFTgIGQ0xPU0VEAghSRVdBUkRFRAIIQ0FOQ0VMRUQAC2RBcHBBZGRyZXNzARoBVEq4T2zewtqT7fSO6Uo2+NVPf5XVVVtdoAEFaXNOZnQBB2Fzc2V0SWQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFdG9rZW4FByRtYXRjaDADAwkAAAIIBQV0b2tlbghkZWNpbWFscwAACQAAAggFBXRva2VuCHF1YW50aXR5AAEHCQAAAggFBXRva2VuCnJlaXNzdWFibGUHBwcDAWkBCWNyZWF0ZU5mdAkIbmZ0X25hbWUJbmZ0X293bmVyD25mdF9kQXBwQWRkcmVzcwhuZnRfdHlwZQhuZnRfdGFncxFuZnRfc2VsbGluZ19wcmljZQ9uZnRfZGVzY3JpcHRpb24KbmZ0X29uU2VsbAhuZnRfZGF0YQQIbmV3VG9rZW4JAMIIBQUIbmZ0X25hbWUFD25mdF9kZXNjcmlwdGlvbgABAAAHBAdpc3N1ZUlkCQC4CAEFCG5ld1Rva2VuBAR0eElkCAUBaQ10cmFuc2FjdGlvbklkCQDMCAIFCG5ld1Rva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdpc3N1ZUlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIFT3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X3R5cGUFCG5mdF90eXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X3RhZ3MFCG5mdF90YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIPbmZ0X2RBcHBBZGRyZXNzBQ9uZnRfZEFwcEFkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIRbmZ0X3NlbGxpbmdfcHJpY2UFEW5mdF9zZWxsaW5nX3ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIKbmZ0X29uU2VsbAUKbmZ0X29uU2VsbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF9kYXRhBQhuZnRfZGF0YQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQR0eElkBQlzZXBhcmF0b3ICCWlzc3VlX25mdAkA2AQBBQdpc3N1ZUlkBQNuaWwBaQEHc2VsbE5GVAIFcHJpY2UQcGF5bWVudF9jdXJyZW5jeQQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAQGc2VsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAskdDAxOTAxMTk4NgkAlAoCCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAZ0b2tlbjAIBQskdDAxOTAxMTk4NgJfMQQHYW1vdW50MAgFCyR0MDE5MDExOTg2Al8yAwkBASEBCQEFaXNOZnQBBQZ0b2tlbjAJAAIBAhBUb2tlbiBpcyBub3QgTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQVrU2VsbAkArAICCQCsAgIJAKwCAgkA2AQBBQZ0b2tlbjAFCXNlcGFyYXRvcgkApAMBBQdhbW91bnQwBRBwYXltZW50X2N1cnJlbmN5BQNuaWwBaQEGYnV5TkZUAwVuZnRJRBFjdXJyZW50X25mdF9vd25lcghwbGF0Zm9ybQQHYXNzZXRJZAkA2QQBBQVuZnRJRAQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQQY2hlY2tPd25lcklzU2FtZQQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWEHBAVwcmljZQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQCsAgIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgUFbmZ0SUQCAV8FEWN1cnJlbnRfbmZ0X293bmVyBAxwbGF0ZnJvbV9mZWUJAGgCCQBpAgUGYW1vdW50AOgHABkDCQAAAgURY3VycmVudF9uZnRfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQACAQIpY3VycmVudCBPd25lciBvZiBORlQgbm90IGFibGUgdG8gcHVyY2hhc2UDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQV0ZWFtcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQURY3VycmVudF9uZnRfb3duZXIFDHBsYXRmcm9tX2ZlZQUFdGVhbXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBGtCdXkJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yCQCkAwEFBmFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3ICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIFA25pbAMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQxwbGF0ZnJvbV9mZWUFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBGtCdXkJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yCQCkAwEFBmFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3ICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIFA25pbAUDbmlsAB5F+6I=", "height": 2444614, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7PorFtDYUTnXgR4GvirsYywJjKWu9HowPfAZf8SmMMge Next: 9XEj2eFUYe9BbDtMeCbhSeZzDeHaNsvuDTq6vWDvsY6m Diff:
OldNewDifferences
6161
6262
6363 @Callable(o)
64-func buyNFT (H,I) = {
64+func buyNFT (H,I,J) = {
6565 let l = fromBase58String(H)
66- let J = value(o.payments[0].amount)
67- let K = {
66+ let K = value(o.payments[0].amount)
67+ let L = {
6868 let m = getString(this, (("nft_" + I) + "_owner"))
6969 if ($isInstanceOf(m, "String"))
7070 then {
71- let L = m
72- L
71+ let M = m
72+ M
7373 }
7474 else false
7575 }
7676 let B = getStringValue(((((c + a) + H) + "_") + I))
77+ let N = ((K / 1000) * 25)
7778 if ((I == toString(o.caller)))
7879 then throw("current Owner of NFT not able to purchase")
7980 else if ((o.payments[0].assetId == f))
80- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, f), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
81+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), N, f), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(K))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8182 else if ((o.payments[0].assetId == unit))
82- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, unit), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
83+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), N, unit), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(K))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8384 else nil
8485 }
85-
86-
87-
88-@Callable(o)
89-func cancelSell (M) = {
90- let A = toBase58String(o.transactionId)
91- let D = o.caller.bytes
92-[StringEntry(((A + M) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(M))]
93- }
94-
95-
96-
97-@Callable(o)
98-func addAuction (N,O,P,Q,C) = {
99- let A = toBase58String(o.transactionId)
100- let M = value(o.payments[0].assetId)
101- let B = value(P)
102- let R = (lastBlock.height + Q)
103- let S = o.caller.bytes
104- let T = {
105- let m = getString(this, (((toBase58String(M) + a) + "nft_status_") + toBase58String(S)))
106- if ($isInstanceOf(m, "String"))
107- then {
108- let L = m
109- true
110- }
111- else false
112- }
113- if ((T == true))
114- then throw("Already in auction list")
115- else if ((Q > e))
116- then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
117- else if ((o.payments[0].assetId == unit))
118- then throw("NFT not attached")
119- else if ((o.payments[0].assetId == f))
120- then throw("NFT not attached")
121- else [StringEntry(((A + "nft_start_auction_date") + toBase58String(S)), N), StringEntry(((A + "nft_end_auction_date") + toBase58String(S)), O), StringEntry((A + "_nft_start_price"), P), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(M)), StringEntry((A + "_previous_bidder"), "none"), StringEntry((A + "_highest_bid"), "0"), StringEntry((A + "_winner_of_nft"), "0"), StringEntry((A + "_bidder_count"), "0"), StringEntry((A + "_nft_status"), "OPEN")]
122- }
123-
124-
125-
126-@Callable(o)
127-func placeBid (U,M,q,V,W) = {
128- let A = toBase58String(o.transactionId)
129- let S = o.caller.bytes
130- let l = fromBase58String(M)
131- let X = o.payments[0].amount
132- let Y = getStringValue(this, (U + "_highest_bid"))
133- let Z = getString(this, (U + "_previous_bidder"))
134- let aa = getStringValue(this, (U + "_bidder_count"))
135- let ab = getStringValue(this, (U + "_winner_of_nft"))
136- let T = getStringValue(this, (U + "_nft_status"))
137- if ((T != "OPEN"))
138- then throw("Not open for auction")
139- else if ((parseIntValue(Y) >= parseIntValue(toString(X))))
140- then throw("Bid is less then starting/highest Bid")
141- else if ((Y == "0"))
142- then [StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y)]
143- else [ScriptTransfer(Address(fromBase58String(ab)), parseIntValue(Y), W), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V)]
144- }
145-
146-
147-
148-@Callable(o)
149-func acceptBidOffer (U,M,ac,W) = {
150- let A = toBase58String(o.transactionId)
151- let S = o.caller.bytes
152- let l = fromBase58String(M)
153- let ad = getStringValue(this, (U + "_highest_bid"))
154- let ae = getStringValue(this, (U + "_winner_of_nft"))
155- if ((W == g))
156- then [ScriptTransfer(Address(S), parseIntValue(ad), unit), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
157- else if ((W == f))
158- then [ScriptTransfer(Address(S), parseIntValue(ad), f), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
159- else nil
160- }
161-
162-
163-
164-@Callable(o)
165-func cancelAuction (U,W) = {
166- let A = toBase58String(o.transactionId)
167- let S = o.caller.bytes
168- let af = getStringValue(this, (U + "_nft_status"))
169- let ag = getStringValue(this, (U + "_winner_of_nft"))
170- let ah = getStringValue(this, (U + "_nft_owner"))
171- let M = getStringValue(this, (U + "_nft_on_auction"))
172- let ai = getStringValue(this, (U + "_highest_bid"))
173- if ((ag == "0"))
174- then [StringEntry(((A + U) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M))]
175- else if ((ag != "0"))
176- then [StringEntry((U + "_nft_status"), "CANCELED"), StringEntry((U + "_previous_bid_amount_refund_to_address"), ag), StringEntry((U + "_prevoius_bid_amount_refund"), ai), StringEntry((A + "_nft_status"), "CANCELED"), StringEntry((A + "_previous_bid_amount_refund_to_address"), ag), StringEntry((A + "_prevoius_bid_amount_refund"), ai), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M)), ScriptTransfer(Address(fromBase58String(ag)), parseIntValue(ai), W)]
177- else nil
178- }
179-
180-
181-
182-@Callable(o)
183-func withdrawBid (aj) = {
184- let S = o.caller.bytes
185- let ak = getStringValue(this, (aj + "_highest_bid"))
186- let al = getStringValue(this, (aj + "_winner"))
187- let am = getStringValue(this, (aj + "_nft_id"))
188- if ((toBase58String(S) != al))
189- then throw("No bid")
190- else [StringEntry((aj + "_nft_bid"), "WITHDRAW"), StringEntry((aj + "_nft_id"), am), StringEntry((aj + "_bidding_price_refund_amount"), ak), ScriptTransfer(o.caller, parseIntValue(ak), unit)]
191- }
192-
193-
194-
195-@Callable(o)
196-func manualFundTransfer (an,ao) = {
197- let S = o.caller.bytes
198- let ap = fromBase58String(an)
199- let J = o.payments[0].amount
200- if ((o.payments[0].assetId == unit))
201- then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, unit)]
202- else if ((o.payments[0].assetId == f))
203- then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, f)]
204- else nil
205- }
206-
207-
208-
209-@Callable(o)
210-func testBid (aq) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
21186
21287
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = "buy"
77
88 let c = "price"
99
1010 let d = "sell"
1111
1212 let e = 7
1313
1414 let f = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1515
1616 let g = base58''
1717
1818 let h = "bid"
1919
2020 let i = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2121
2222 let j = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
2323
2424 func k (l) = {
2525 let m = assetInfo(l)
2626 if ($isInstanceOf(m, "Asset"))
2727 then {
2828 let n = m
2929 if (if ((n.decimals == 0))
3030 then (n.quantity == 1)
3131 else false)
3232 then (n.reissuable == false)
3333 else false
3434 }
3535 else false
3636 }
3737
3838
3939 @Callable(o)
4040 func createNft (p,q,r,s,t,u,v,w,x) = {
4141 let y = Issue(p, v, 1, 0, false)
4242 let z = calculateAssetId(y)
4343 let A = o.transactionId
4444 [y, ScriptTransfer(o.caller, 1, z), StringEntry(((toBase58String(z) + a) + "Owner"), toString(o.caller)), StringEntry(((toBase58String(z) + a) + "nft_type"), s), StringEntry(((toBase58String(z) + a) + "nft_tags"), t), StringEntry(((toBase58String(z) + a) + "nft_dAppAddress"), r), IntegerEntry(((toBase58String(z) + a) + "nft_selling_price"), u), StringEntry(((toBase58String(z) + a) + "nft_onSell"), w), StringEntry(((toBase58String(z) + a) + "nft_data"), x), StringEntry(((toBase58String(A) + a) + "issue_nft"), toBase58String(z))]
4545 }
4646
4747
4848
4949 @Callable(o)
5050 func sellNFT (B,C) = {
5151 let A = o.transactionId
5252 let D = o.caller.bytes
5353 let E = $Tuple2(value(o.payments[0].assetId), value(o.payments[0].amount))
5454 let F = E._1
5555 let G = E._2
5656 if (!(k(F)))
5757 then throw("Token is not NFT")
5858 else [StringEntry(((c + a) + toBase58String(value(o.payments[0].assetId))), B), StringEntry(((toString(o.caller) + a) + d), (((toBase58String(F) + a) + toString(G)) + C))]
5959 }
6060
6161
6262
6363 @Callable(o)
64-func buyNFT (H,I) = {
64+func buyNFT (H,I,J) = {
6565 let l = fromBase58String(H)
66- let J = value(o.payments[0].amount)
67- let K = {
66+ let K = value(o.payments[0].amount)
67+ let L = {
6868 let m = getString(this, (("nft_" + I) + "_owner"))
6969 if ($isInstanceOf(m, "String"))
7070 then {
71- let L = m
72- L
71+ let M = m
72+ M
7373 }
7474 else false
7575 }
7676 let B = getStringValue(((((c + a) + H) + "_") + I))
77+ let N = ((K / 1000) * 25)
7778 if ((I == toString(o.caller)))
7879 then throw("current Owner of NFT not able to purchase")
7980 else if ((o.payments[0].assetId == f))
80- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, f), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
81+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), N, f), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(K))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8182 else if ((o.payments[0].assetId == unit))
82- then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), J, unit), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(J))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
83+ then [ScriptTransfer(o.caller, 1, l), ScriptTransfer(Address(fromBase58String(I)), N, unit), StringEntry(((toString(o.caller) + a) + b), ((H + a) + toString(K))), DeleteEntry((("nft_" + I) + "_owner")), StringEntry((("nft_" + I) + "_owner"), toString(o.caller)), StringEntry(((H + a) + "_owner"), toString(o.caller))]
8384 else nil
8485 }
85-
86-
87-
88-@Callable(o)
89-func cancelSell (M) = {
90- let A = toBase58String(o.transactionId)
91- let D = o.caller.bytes
92-[StringEntry(((A + M) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(D), 1, fromBase58String(M))]
93- }
94-
95-
96-
97-@Callable(o)
98-func addAuction (N,O,P,Q,C) = {
99- let A = toBase58String(o.transactionId)
100- let M = value(o.payments[0].assetId)
101- let B = value(P)
102- let R = (lastBlock.height + Q)
103- let S = o.caller.bytes
104- let T = {
105- let m = getString(this, (((toBase58String(M) + a) + "nft_status_") + toBase58String(S)))
106- if ($isInstanceOf(m, "String"))
107- then {
108- let L = m
109- true
110- }
111- else false
112- }
113- if ((T == true))
114- then throw("Already in auction list")
115- else if ((Q > e))
116- then throw(("Duration is too long. Must be less than or equal to 7 " + toString(e)))
117- else if ((o.payments[0].assetId == unit))
118- then throw("NFT not attached")
119- else if ((o.payments[0].assetId == f))
120- then throw("NFT not attached")
121- else [StringEntry(((A + "nft_start_auction_date") + toBase58String(S)), N), StringEntry(((A + "nft_end_auction_date") + toBase58String(S)), O), StringEntry((A + "_nft_start_price"), P), StringEntry((A + "_nft_owner"), toString(o.caller)), StringEntry((A + "_nft_on_auction"), toBase58String(M)), StringEntry((A + "_previous_bidder"), "none"), StringEntry((A + "_highest_bid"), "0"), StringEntry((A + "_winner_of_nft"), "0"), StringEntry((A + "_bidder_count"), "0"), StringEntry((A + "_nft_status"), "OPEN")]
122- }
123-
124-
125-
126-@Callable(o)
127-func placeBid (U,M,q,V,W) = {
128- let A = toBase58String(o.transactionId)
129- let S = o.caller.bytes
130- let l = fromBase58String(M)
131- let X = o.payments[0].amount
132- let Y = getStringValue(this, (U + "_highest_bid"))
133- let Z = getString(this, (U + "_previous_bidder"))
134- let aa = getStringValue(this, (U + "_bidder_count"))
135- let ab = getStringValue(this, (U + "_winner_of_nft"))
136- let T = getStringValue(this, (U + "_nft_status"))
137- if ((T != "OPEN"))
138- then throw("Not open for auction")
139- else if ((parseIntValue(Y) >= parseIntValue(toString(X))))
140- then throw("Bid is less then starting/highest Bid")
141- else if ((Y == "0"))
142- then [StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y)]
143- else [ScriptTransfer(Address(fromBase58String(ab)), parseIntValue(Y), W), StringEntry((A + "_previous_bid_amount_refund_to_address"), ab), StringEntry((A + "_prevoius_bid_amount_refund"), Y), StringEntry((U + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((U + "_highest_bid"), toString(X)), StringEntry((U + "_winner_of_nft"), toBase58String(o.caller.bytes)), StringEntry((U + "_nft_id"), toBase58String(l)), StringEntry((U + "_nft_owner"), q), StringEntry((((A + "_") + U) + "_highest_bid"), toString(X)), StringEntry((((A + "_") + U) + "_winner"), toBase58String(o.caller.bytes)), StringEntry((((A + "_") + U) + "_bidder_count"), toString((parseIntValue(aa) + 1))), StringEntry((((A + "_") + U) + "_nft_id"), toBase58String(l)), StringEntry((((A + "_") + U) + "_nft_owner"), q), StringEntry((A + "_bid_for_nft_by"), toBase58String(S)), StringEntry((A + "_bid_price_place"), V)]
144- }
145-
146-
147-
148-@Callable(o)
149-func acceptBidOffer (U,M,ac,W) = {
150- let A = toBase58String(o.transactionId)
151- let S = o.caller.bytes
152- let l = fromBase58String(M)
153- let ad = getStringValue(this, (U + "_highest_bid"))
154- let ae = getStringValue(this, (U + "_winner_of_nft"))
155- if ((W == g))
156- then [ScriptTransfer(Address(S), parseIntValue(ad), unit), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
157- else if ((W == f))
158- then [ScriptTransfer(Address(S), parseIntValue(ad), f), ScriptTransfer(Address(fromBase58String(ae)), 1, l), StringEntry((A + "_amount_paid_to_owner"), ad), StringEntry((A + "_nft_transfer_to"), ae), StringEntry((A + "_nft_status"), "REWARDED"), StringEntry((U + "_amount_paid_to_owner"), ad), StringEntry((U + "_nft_transfer_to"), ae), StringEntry((U + "_nft_status"), "REWARDED")]
159- else nil
160- }
161-
162-
163-
164-@Callable(o)
165-func cancelAuction (U,W) = {
166- let A = toBase58String(o.transactionId)
167- let S = o.caller.bytes
168- let af = getStringValue(this, (U + "_nft_status"))
169- let ag = getStringValue(this, (U + "_winner_of_nft"))
170- let ah = getStringValue(this, (U + "_nft_owner"))
171- let M = getStringValue(this, (U + "_nft_on_auction"))
172- let ai = getStringValue(this, (U + "_highest_bid"))
173- if ((ag == "0"))
174- then [StringEntry(((A + U) + "_nft_status"), "CANCELED"), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M))]
175- else if ((ag != "0"))
176- then [StringEntry((U + "_nft_status"), "CANCELED"), StringEntry((U + "_previous_bid_amount_refund_to_address"), ag), StringEntry((U + "_prevoius_bid_amount_refund"), ai), StringEntry((A + "_nft_status"), "CANCELED"), StringEntry((A + "_previous_bid_amount_refund_to_address"), ag), StringEntry((A + "_prevoius_bid_amount_refund"), ai), ScriptTransfer(Address(fromBase58String(ah)), 1, fromBase58String(M)), ScriptTransfer(Address(fromBase58String(ag)), parseIntValue(ai), W)]
177- else nil
178- }
179-
180-
181-
182-@Callable(o)
183-func withdrawBid (aj) = {
184- let S = o.caller.bytes
185- let ak = getStringValue(this, (aj + "_highest_bid"))
186- let al = getStringValue(this, (aj + "_winner"))
187- let am = getStringValue(this, (aj + "_nft_id"))
188- if ((toBase58String(S) != al))
189- then throw("No bid")
190- else [StringEntry((aj + "_nft_bid"), "WITHDRAW"), StringEntry((aj + "_nft_id"), am), StringEntry((aj + "_bidding_price_refund_amount"), ak), ScriptTransfer(o.caller, parseIntValue(ak), unit)]
191- }
192-
193-
194-
195-@Callable(o)
196-func manualFundTransfer (an,ao) = {
197- let S = o.caller.bytes
198- let ap = fromBase58String(an)
199- let J = o.payments[0].amount
200- if ((o.payments[0].assetId == unit))
201- then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, unit)]
202- else if ((o.payments[0].assetId == f))
203- then [IntegerEntry((toBase58String(S) + "_transfer"), J), StringEntry((toBase58String(S) + "_transfer_to"), an), ScriptTransfer(Address(ap), J, f)]
204- else nil
205- }
206-
207-
208-
209-@Callable(o)
210-func testBid (aq) = [StringEntry("E8kkFBYCy44JJaq6pAZ6KizsuResi5UKNhbD1WNZwhhY_highest_bid", "0")]
21186
21287

github/deemru/w8io/169f3d6 
52.75 ms