tx · BAEBUeykQRiGK9xAMWdkqAvyrTQpcSp4kTwneprLF9jv

3N9yxjwDM9T8cFxAxjrw8k5wiGxRxHh9FdW:  -0.01400000 Waves

2021.05.20 08:29 [1533580] smart account 3N9yxjwDM9T8cFxAxjrw8k5wiGxRxHh9FdW > SELF 0.00000000 Waves

{ "type": 13, "id": "BAEBUeykQRiGK9xAMWdkqAvyrTQpcSp4kTwneprLF9jv", "fee": 1400000, "feeAssetId": null, "timestamp": 1621488622315, "version": 2, "chainId": 84, "sender": "3N9yxjwDM9T8cFxAxjrw8k5wiGxRxHh9FdW", "senderPublicKey": "7nc1RVTNTXy1DvKS2F4boNQWQir3Lqpvi8zMoo42M3nP", "proofs": [ "DCWEC8CqB1W9LTvVms9AYNoQxYHZbjkbAmA73gM2LyL7PB4uv8s5wdUStunF4u36Zqp7FmxBETQovcdDRKGx6MC" ], "script": "base64:AAIEAAAAAAAAAD4IAhIECgIBCBIDCgEIEgMKAQgSAwoBCBIFCgMICAgSBQoDCAgIEgQKAggIEgUKAwgICBIFCgMICAgSAwoBCAAAACgAAAAACHVuaXRUZXN0BwAAAAAJb3JhY2xlRmVlCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOMnM1UnRhSFBCZW5Dc3gyRUNjb0ZSYllIeDNub1poWFcxAAAAAAhzaWduRGFwcAkBAAAABXZhbHVlAAAAAQkABCYAAAABAgAAACMzTkMyOGhTaXZybXNUVVhhWUQxeDZMMzYySjRacFVub1RkQgAAAAAMYXJ0d29ya3NEYXBwCQEAAAAFdmFsdWUAAAABCQAEJgAAAAECAAAAIzNOQnluZmJYQzJLYXN0VXhodWtjTVVhRTU4SzljQmRCOVVZAAAAAAtmZWVSZWNlaXZlcgIAAAAjM04xRTZ0WGRkUm9WYVJmUTlkUTN2ZzVMYVcyZnNkOEhLdWIAAAAACHVzZXJEYXBwAwUAAAAIdW5pdFRlc3QJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM044eFhhWWpFMjdBYTc5ZDVoSHJoSHU5SGFGb1RCbWhERWoAAAAADXdoaXRlbGlzdERhcHAJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQIAAAAjM042QmFWMWRDQjR6ZzQzZ29OTkhhQ3R2UjEzQmN5SjVHc3EAAAAAC3NpZ25Bc3NldElkAQAAACDopWq8yndC8nBhMjVKT0WDubke5ZlnF8Nx6tkLoQSt6wAAAAALdXNkbkFzc2V0SWQBAAAAIA/yHBKs5MQ8muxGGqslqLDsugcrRsxtiHLwteKSSQG0AAAAAAx3YXZlc0Fzc2V0SWQBAAAAAAAAAAAFY2hyaXMCAAAAIzNNc0c2alBOQ3JWSlV0WUI3WEpCeFM3dXRXc1hBZjRuOVZwAAAAAARqb2VwAgAAACMzTXptNFZMd3NOOXVad2JUTXpQajNYdXhWNmtFZkFSOFVETgAAAAAHc2lnbkN1dAAAAAAAAAAAAwAAAAAKY3JlYXRvckN1dAAAAAAAAAAACgAAAAALZGFwcFJ1bm5p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", "height": 1533580, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EyajSE7nubYAW2kg9wjL5UGCzK2fcSg4zmdiVnMB9uqD Next: HoaSvvJfMvGuRWPu6KpKBSsXJairWath6b8ixdAuaoAX Diff:
OldNewDifferences
205205 else false)
206206 then K.assetId
207207 else throw("Only SIGN Art NFT accepted.")
208- if (!(O(ar)))
209- then throw("Only SIGN, USDN or WAVES accepted")
210- else {
211- let av = ac(toBase58String(value(P)))
212- let aw = av._1
213- let ag = av._2
214- if (!(aw))
215- then throw("Something went wrong")
216- else [StringEntry((((((("sale2nd_info_" + ai) + "_") + toBase58String(value(K.assetId))) + "_") + ag) + "_OPEN"), ((((toString(at) + "_") + toString(aq)) + "_") + ar)), StringEntry(((("sale2nd_status_" + ai) + "_") + toBase58String(value(K.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(K.assetId))), ai)]
217- }
208+ let av = assetInfo(value(K.assetId))
209+ if (true)
210+ then throw(("NFT Name = " + value(av).name))
211+ else if (!(O(ar)))
212+ then throw("Only SIGN, USDN or WAVES accepted")
213+ else {
214+ let aw = ac(toBase58String(value(P)))
215+ let ax = aw._1
216+ let ag = aw._2
217+ if (!(ax))
218+ then throw("Something went wrong")
219+ else [StringEntry((((((("sale2nd_info_" + ai) + "_") + toBase58String(value(K.assetId))) + "_") + ag) + "_OPEN"), ((((toString(at) + "_") + toString(aq)) + "_") + ar)), StringEntry(((("sale2nd_status_" + ai) + "_") + toBase58String(value(K.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(K.assetId))), ai)]
220+ }
218221 }
219222
220223
221224
222225 @Callable(I)
223226 func cancelSale (S) = {
224- let ax = H(I)
225- let G = ax._1
226- let ai = ax._2
227- let at = ax._3
227+ let ay = H(I)
228+ let G = ay._1
229+ let ai = ay._2
230+ let at = ay._3
228231 let T = x(("current_owner_on_dapp_" + S))
229232 if ((T != ai))
230233 then throw("You don't own this NFT")
234237 then throw("Sale not active")
235238 else {
236239 let ag = split(w(F(S)), "_")[6]
237- let ay = x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U))
238-[DeleteEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ai) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ay), ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))]
240+ let az = x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U))
241+[DeleteEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ai) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CANCELLED"), az), ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))]
239242 }
240243 }
241244 }
244247
245248 @Callable(I)
246249 func buyNFT (S) = {
247- let az = H(I)
248- let G = az._1
249- let ai = az._2
250- let at = az._3
250+ let aA = H(I)
251+ let G = aA._1
252+ let ai = aA._2
253+ let at = aA._3
251254 let T = R(S)
252- let aA = ac(S)
253- let aw = aA._1
254- let ag = aA._2
255- if (!(aw))
255+ let aB = ac(S)
256+ let ax = aB._1
257+ let ag = aB._2
258+ if (!(ax))
256259 then throw("Something went wrong")
257260 else {
258- let ay = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
259- if ((size(ay) == 0))
261+ let az = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
262+ if ((size(az) == 0))
260263 then throw("Sale Not found!")
261264 else {
262- let aB = split(ay, "_")
263- if ((parseInt(aB[1]) == 0))
265+ let aC = split(az, "_")
266+ if ((parseInt(aC[1]) == 0))
264267 then throw("Offer only")
265268 else {
266- let aC = J(I)
267- let K = aC._1
268- let L = aC._2
269- if (if ((aB[1] != toString(L)))
269+ let aD = J(I)
270+ let K = aD._1
271+ let L = aD._2
272+ if (if ((aC[1] != toString(L)))
270273 then true
271- else (aB[2] != toBase58String(value(K.assetId))))
274+ else (aC[2] != toBase58String(value(K.assetId))))
272275 then throw("Payment infos don't match.")
273276 else {
274277 let aj = fraction(L, m, 100)
275278 let ak = fraction(L, n, 100)
276279 let al = (L - (aj + ak))
277- let aD = ah(L, K.assetId, S, ag, T, ai)
278- let am = aD._1
279- let an = aD._2
280- let ao = aD._3
281- let ap = aD._4
280+ let aE = ah(L, K.assetId, S, ag, T, ai)
281+ let am = aE._1
282+ let an = aE._2
283+ let ao = aE._3
284+ let ap = aE._4
282285 [DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_to_") + ai)), am, an, ao, ap]
283286 }
284287 }
290293
291294 @Callable(I)
292295 func setOffer (S) = {
293- let aE = H(I)
294- let G = aE._1
295- let aF = aE._2
296- let at = aE._3
297- let aG = J(I)
298- let K = aG._1
299- let L = aG._2
296+ let aF = H(I)
297+ let G = aF._1
298+ let aG = aF._2
299+ let at = aF._3
300+ let aH = J(I)
301+ let K = aH._1
302+ let L = aH._2
300303 let P = if (!(isDefined(K.assetId)))
301304 then "WAVES"
302305 else toBase58String(value(K.assetId))
303306 if (!(O(P)))
304307 then throw("asset not accepted")
305308 else {
306- let aH = ac(S)
307- let aw = aH._1
308- let ag = aH._2
309- if (!(aw))
309+ let aI = ac(S)
310+ let ax = aI._1
311+ let ag = aI._2
312+ if (!(ax))
310313 then throw("Something went wrong")
311314 else {
312315 let T = R(S)
313-[StringEntry((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + aF) + "_") + G))]
316+[StringEntry((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + aG) + "_") + G))]
314317 }
315318 }
316319 }
318321
319322
320323 @Callable(I)
321-func acceptOffer (S,aI,aF) = {
322- let aJ = H(I)
323- let G = aJ._1
324- let ai = aJ._2
325- let at = aJ._3
324+func acceptOffer (S,aJ,aG) = {
325+ let aK = H(I)
326+ let G = aK._1
327+ let ai = aK._2
328+ let at = aK._3
326329 let T = R(S)
327330 if ((ai != T))
328331 then throw("You cannot do this action")
329332 else {
330- let aK = x((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI) + "_OPEN"))
331- if ((aK == ""))
333+ let aL = x((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ) + "_OPEN"))
334+ if ((aL == ""))
332335 then throw("Offer not found or not for sale")
333336 else {
334- let aL = ac(S)
335- let aw = aL._1
336- let ag = aL._2
337- if (!(aw))
337+ let aM = ac(S)
338+ let ax = aM._1
339+ let ag = aM._2
340+ if (!(ax))
338341 then throw("Something went wrong")
339342 else {
340- let ay = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
341- if ((size(ay) == 0))
343+ let az = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
344+ if ((size(az) == 0))
342345 then throw("Sale Not found!")
343346 else {
344- let aM = ((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI)
345- let aN = V(aM)
346- let X = aN._1
347- let P = aN._2
348- let W = aN._3
347+ let aN = ((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ)
348+ let aO = V(aN)
349+ let X = aO._1
350+ let P = aO._2
351+ let W = aO._3
349352 let L = value(parseInt(X[1]))
350- let aO = ah(L, P, S, ag, T, X[3])
351- let am = aO._1
352- let an = aO._2
353- let ao = aO._3
354- let ap = aO._4
355-[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aM + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + aF) + "_") + aI)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_to_") + aF)), am, an, ao, ap]
353+ let aP = ah(L, P, S, ag, T, X[3])
354+ let am = aP._1
355+ let an = aP._2
356+ let ao = aP._3
357+ let ap = aP._4
358+[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aN + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + aG) + "_") + aJ)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_to_") + aG)), am, an, ao, ap]
356359 }
357360 }
358361 }
362365
363366
364367 @Callable(I)
365-func cancelOffer (S,aI,T) = {
366- let aP = H(I)
367- let G = aP._1
368- let ai = aP._2
369- let at = aP._3
370- let aM = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aI)
371- let aQ = V(aM)
372- let X = aQ._1
373- let P = aQ._2
374- let W = aQ._3
375-[DeleteEntry((aM + "_OPEN")), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
368+func cancelOffer (S,aJ,T) = {
369+ let aQ = H(I)
370+ let G = aQ._1
371+ let ai = aQ._2
372+ let at = aQ._3
373+ let aN = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aJ)
374+ let aR = V(aN)
375+ let X = aR._1
376+ let P = aR._2
377+ let W = aR._3
378+[DeleteEntry((aN + "_OPEN")), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
376379 }
377380
378381
379382
380383 @Callable(I)
381384 func makeRequest (D,ag) = {
382- let aR = H(I)
383- let G = aR._1
384- let aS = aR._2
385- let at = aR._3
386- let aT = J(I)
387- let K = aT._1
388- let L = aT._2
385+ let aS = H(I)
386+ let G = aS._1
387+ let aT = aS._2
388+ let at = aS._3
389+ let aU = J(I)
390+ let K = aU._1
391+ let L = aU._2
389392 let P = if (!(isDefined(K.assetId)))
390393 then "WAVES"
391394 else toBase58String(value(K.assetId))
392395 if (!(O(P)))
393396 then throw("asset not accepted")
394397 else {
395- let aU = af(D, ag)
396- if (!(aU))
398+ let aV = af(D, ag)
399+ if (!(aV))
397400 then throw("Something went wrong")
398- else [StringEntry((((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aS) + "_") + G))]
401+ else [StringEntry((((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aT) + "_") + G))]
399402 }
400403 }
401404
402405
403406
404407 @Callable(I)
405-func fillRequest (D,aS,aI) = {
406- let aV = H(I)
407- let G = aV._1
408- let T = aV._2
409- let at = aV._3
410- let aW = J(I)
411- let K = aW._1
412- let aX = aW._2
413- let aY = if (if (isDefined(K.assetId))
408+func fillRequest (D,aT,aJ) = {
409+ let aW = H(I)
410+ let G = aW._1
411+ let T = aW._2
412+ let at = aW._3
413+ let aX = J(I)
414+ let K = aX._1
415+ let aY = aX._2
416+ let aZ = if (if (isDefined(K.assetId))
414417 then M(value(K.assetId))
415418 else false)
416419 then K.assetId
417420 else throw("No NFT found")
418- let aZ = split(w(("nft_" + toBase58String(value(aY)))), "_")
419- if ((size(aZ) == 0))
421+ let ba = split(w(("nft_" + toBase58String(value(aZ)))), "_")
422+ if ((size(ba) == 0))
420423 then throw("No NFT found")
421424 else {
422- let ba = split(x((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), "_")
423- if ((size(ba) == 1))
425+ let bb = split(x((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), "_")
426+ if ((size(bb) == 1))
424427 then throw("No request found")
425- else if ((ba[3] != aZ[5]))
428+ else if ((bb[3] != ba[5]))
426429 then throw("This NFT don't match the requested artwork")
427430 else {
428- let L = value(parseInt(ba[1]))
429- let bb = ah(L, fromBase58String(ba[2]), toBase58String(value(aY)), aZ[6], T, ba[4])
430- let am = bb._1
431- let an = bb._2
432- let ao = bb._3
433- let ap = bb._4
434-[DeleteEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), StringEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + ba[2]) + "_") + D) + "_") + aS) + "_") + T) + "_") + G)), am, an, ao, ap]
431+ let L = value(parseInt(bb[1]))
432+ let bc = ah(L, fromBase58String(bb[2]), toBase58String(value(aZ)), ba[6], T, bb[4])
433+ let am = bc._1
434+ let an = bc._2
435+ let ao = bc._3
436+ let ap = bc._4
437+[DeleteEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), StringEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + bb[2]) + "_") + D) + "_") + aT) + "_") + T) + "_") + G)), am, an, ao, ap]
435438 }
436439 }
437440 }
439442
440443
441444 @Callable(I)
442-func cancelRequest (D,ag,bc) = {
443- let bd = H(I)
444- let G = bd._1
445- let aS = bd._2
446- let at = bd._3
447- let be = ((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + bc)
448- let ba = x((be + "_OPEN"))
449- if ((size(ba) == 0))
445+func cancelRequest (D,ag,bd) = {
446+ let be = H(I)
447+ let G = be._1
448+ let aT = be._2
449+ let at = be._3
450+ let bf = ((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + bd)
451+ let bb = x((bf + "_OPEN"))
452+ if ((size(bb) == 0))
450453 then throw("Request not found")
451454 else {
452- let bf = split(ba, "_")
453-[DeleteEntry((be + "_OPEN")), StringEntry((((((be + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((ba + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aS)), parseIntValue(bf[1]), fromBase58String(bf[2]))]
455+ let bg = split(bb, "_")
456+[DeleteEntry((bf + "_OPEN")), StringEntry((((((bf + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((bb + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aT)), parseIntValue(bg[1]), fromBase58String(bg[2]))]
454457 }
455458 }
456459
457460
458461
459462 @Callable(I)
460-func deleteEntry (bg) = {
463+func deleteEntry (bh) = {
461464 let ai = toString(addressFromPublicKey(I.callerPublicKey))
462465 if ((ai == k))
463- then [DeleteEntry(bg)]
466+ then [DeleteEntry(bh)]
464467 else throw("no")
465468 }
466469
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = value(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
77
88 let c = value(addressFromString("3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB"))
99
1010 let d = value(addressFromString("3NBynfbXC2KastUxhukcMUaE58K9cBdB9UY"))
1111
1212 let e = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
1313
1414 let f = if (a)
1515 then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
1616 else value(addressFromString("3N8xXaYjE27Aa79d5hHrhHu9HaFoTBmhDEj"))
1717
1818 let g = value(addressFromString("3N6BaV1dCB4zg43goNNHaCtvR13BcyJ5Gsq"))
1919
2020 let h = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
2121
2222 let i = base58'25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT'
2323
2424 let j = base58''
2525
2626 let k = "3MsG6jPNCrVJUtYB7XJBxS7utWsXAf4n9Vp"
2727
2828 let l = "3Mzm4VLwsN9uZwbTMzPj3XuxV6kEfAR8UDN"
2929
3030 let m = 3
3131
3232 let n = 10
3333
3434 let o = valueOrElse(getBoolean(f, "conf_dapp_is_running"), true)
3535
3636 let p = valueOrElse(getString(f, "conf_maintenance_msg"), "")
3737
3838 let q = "SUSPENDED"
3939
4040 let r = "REMOVED"
4141
4242 let s = "ILLEGAL"
4343
4444 let t = "SUSPENDED"
4545
4646 func u (v) = valueOrElse(getString(f, v), "Error")
4747
4848
4949 func w (v) = valueOrElse(getString(d, v), "")
5050
5151
5252 func x (v) = valueOrElse(getString(this, v), "")
5353
5454
5555 func y (v) = valueOrElse(getInteger(this, v), 0)
5656
5757
5858 func z (A) = ("user_status_" + A)
5959
6060
6161 func B (C,D) = ((("art_signid_" + D) + "_") + C)
6262
6363
6464 func E (C,D) = ((("art_flag_" + D) + "_") + C)
6565
6666
6767 func F (G) = ("nft_" + G)
6868
6969
7070 func H (I) = if (!(o))
7171 then throw(p)
7272 else $Tuple3(toBase58String(I.transactionId), toBase58String(I.caller.bytes), lastBlock.timestamp)
7373
7474
7575 func J (I) = if ((size(I.payments) == 0))
7676 then throw("No payment attached")
7777 else {
7878 let K = value(I.payments[0])
7979 let L = value(K.amount)
8080 $Tuple2(K, L)
8181 }
8282
8383
8484 func M (G) = {
8585 let N = value(assetInfo(G))
8686 if (if (if (if ((N.quantity != 1))
8787 then true
8888 else (N.decimals != 0))
8989 then true
9090 else (N.reissuable != false))
9191 then true
9292 else (N.issuer != d))
9393 then false
9494 else true
9595 }
9696
9797
9898 func O (P) = if (if (if (if ((P != toBase58String(h)))
9999 then (P != toBase58String(j))
100100 else false)
101101 then (P != "WAVES")
102102 else false)
103103 then (P != toBase58String(i))
104104 else false)
105105 then false
106106 else true
107107
108108
109109 func Q (P) = if ((P == "WAVES"))
110110 then unit
111111 else fromBase58String(P)
112112
113113
114114 func R (S) = {
115115 let T = x(("current_owner_on_dapp_" + S))
116116 if ((size(T) == 0))
117117 then throw("NFT not found")
118118 else {
119119 let U = x(((("sale2nd_status_" + T) + "_") + S))
120120 if ((U != "OPEN"))
121121 then throw("NFT not for sale")
122122 else T
123123 }
124124 }
125125
126126
127127 func V (v) = {
128128 let W = x((v + "_OPEN"))
129129 if ((W == ""))
130130 then throw("Offer not found")
131131 else {
132132 let X = split(W, "_")
133133 let P = Q(X[2])
134134 $Tuple3(X, P, W)
135135 }
136136 }
137137
138138
139139 func Y (A,G) = {
140140 let Z = w(E(A, G))
141141 if (if ((Z == s))
142142 then true
143143 else (Z == t))
144144 then throw(("Original Artwork flagged as " + Z))
145145 else true
146146 }
147147
148148
149149 func aa (A) = {
150150 let ab = u(z(A))
151151 if (containsElement([q, r], ab))
152152 then throw(("Original Artist " + ab))
153153 else true
154154 }
155155
156156
157157 func ac (P) = {
158158 let ad = split(w(F(P)), "_")
159159 let ae = w(B(ad[6], ad[5]))
160160 if ((size(ae) == 0))
161161 then throw("Artwork not found on SIGN Art")
162162 else if (if (!(Y(ad[6], ad[5])))
163163 then !(aa(ad[6]))
164164 else false)
165165 then $Tuple2(false, ad[6])
166166 else $Tuple2(true, ad[6])
167167 }
168168
169169
170170 func af (D,ag) = {
171171 let ae = w(B(ag, D))
172172 if ((size(ae) == 0))
173173 then throw("Artwork not found on SIGN Art")
174174 else if (if (!(Y(ag, D)))
175175 then !(aa(ag))
176176 else false)
177177 then false
178178 else true
179179 }
180180
181181
182182 func ah (L,P,S,ag,T,ai) = {
183183 let aj = fraction(L, m, 100)
184184 let ak = fraction(L, n, 100)
185185 let al = (L - (aj + ak))
186186 let am = ScriptTransfer(Address(fromBase58String(e)), aj, P)
187187 let an = ScriptTransfer(Address(fromBase58String(ag)), ak, P)
188188 let ao = ScriptTransfer(Address(fromBase58String(T)), al, P)
189189 let ap = ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))
190190 $Tuple4(am, an, ao, ap)
191191 }
192192
193193
194194 @Callable(I)
195195 func sellNFT (aq,ar) = {
196196 let as = H(I)
197197 let G = as._1
198198 let ai = as._2
199199 let at = as._3
200200 let au = J(I)
201201 let K = au._1
202202 let L = au._2
203203 let P = if (if (isDefined(K.assetId))
204204 then M(value(K.assetId))
205205 else false)
206206 then K.assetId
207207 else throw("Only SIGN Art NFT accepted.")
208- if (!(O(ar)))
209- then throw("Only SIGN, USDN or WAVES accepted")
210- else {
211- let av = ac(toBase58String(value(P)))
212- let aw = av._1
213- let ag = av._2
214- if (!(aw))
215- then throw("Something went wrong")
216- else [StringEntry((((((("sale2nd_info_" + ai) + "_") + toBase58String(value(K.assetId))) + "_") + ag) + "_OPEN"), ((((toString(at) + "_") + toString(aq)) + "_") + ar)), StringEntry(((("sale2nd_status_" + ai) + "_") + toBase58String(value(K.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(K.assetId))), ai)]
217- }
208+ let av = assetInfo(value(K.assetId))
209+ if (true)
210+ then throw(("NFT Name = " + value(av).name))
211+ else if (!(O(ar)))
212+ then throw("Only SIGN, USDN or WAVES accepted")
213+ else {
214+ let aw = ac(toBase58String(value(P)))
215+ let ax = aw._1
216+ let ag = aw._2
217+ if (!(ax))
218+ then throw("Something went wrong")
219+ else [StringEntry((((((("sale2nd_info_" + ai) + "_") + toBase58String(value(K.assetId))) + "_") + ag) + "_OPEN"), ((((toString(at) + "_") + toString(aq)) + "_") + ar)), StringEntry(((("sale2nd_status_" + ai) + "_") + toBase58String(value(K.assetId))), "OPEN"), StringEntry(("current_owner_on_dapp_" + toBase58String(value(K.assetId))), ai)]
220+ }
218221 }
219222
220223
221224
222225 @Callable(I)
223226 func cancelSale (S) = {
224- let ax = H(I)
225- let G = ax._1
226- let ai = ax._2
227- let at = ax._3
227+ let ay = H(I)
228+ let G = ay._1
229+ let ai = ay._2
230+ let at = ay._3
228231 let T = x(("current_owner_on_dapp_" + S))
229232 if ((T != ai))
230233 then throw("You don't own this NFT")
231234 else {
232235 let U = x(((("sale2nd_status_" + ai) + "_") + S))
233236 if ((U != "OPEN"))
234237 then throw("Sale not active")
235238 else {
236239 let ag = split(w(F(S)), "_")[6]
237- let ay = x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U))
238-[DeleteEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ai) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ay), ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))]
240+ let az = x(((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + U))
241+[DeleteEntry((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + ai) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + ai) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CANCELLED"), az), ScriptTransfer(Address(fromBase58String(ai)), 1, fromBase58String(S))]
239242 }
240243 }
241244 }
242245
243246
244247
245248 @Callable(I)
246249 func buyNFT (S) = {
247- let az = H(I)
248- let G = az._1
249- let ai = az._2
250- let at = az._3
250+ let aA = H(I)
251+ let G = aA._1
252+ let ai = aA._2
253+ let at = aA._3
251254 let T = R(S)
252- let aA = ac(S)
253- let aw = aA._1
254- let ag = aA._2
255- if (!(aw))
255+ let aB = ac(S)
256+ let ax = aB._1
257+ let ag = aB._2
258+ if (!(ax))
256259 then throw("Something went wrong")
257260 else {
258- let ay = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
259- if ((size(ay) == 0))
261+ let az = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
262+ if ((size(az) == 0))
260263 then throw("Sale Not found!")
261264 else {
262- let aB = split(ay, "_")
263- if ((parseInt(aB[1]) == 0))
265+ let aC = split(az, "_")
266+ if ((parseInt(aC[1]) == 0))
264267 then throw("Offer only")
265268 else {
266- let aC = J(I)
267- let K = aC._1
268- let L = aC._2
269- if (if ((aB[1] != toString(L)))
269+ let aD = J(I)
270+ let K = aD._1
271+ let L = aD._2
272+ if (if ((aC[1] != toString(L)))
270273 then true
271- else (aB[2] != toBase58String(value(K.assetId))))
274+ else (aC[2] != toBase58String(value(K.assetId))))
272275 then throw("Payment infos don't match.")
273276 else {
274277 let aj = fraction(L, m, 100)
275278 let ak = fraction(L, n, 100)
276279 let al = (L - (aj + ak))
277- let aD = ah(L, K.assetId, S, ag, T, ai)
278- let am = aD._1
279- let an = aD._2
280- let ao = aD._3
281- let ap = aD._4
280+ let aE = ah(L, K.assetId, S, ag, T, ai)
281+ let am = aE._1
282+ let an = aE._2
283+ let ao = aE._3
284+ let ap = aE._4
282285 [DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_to_") + ai)), am, an, ao, ap]
283286 }
284287 }
285288 }
286289 }
287290 }
288291
289292
290293
291294 @Callable(I)
292295 func setOffer (S) = {
293- let aE = H(I)
294- let G = aE._1
295- let aF = aE._2
296- let at = aE._3
297- let aG = J(I)
298- let K = aG._1
299- let L = aG._2
296+ let aF = H(I)
297+ let G = aF._1
298+ let aG = aF._2
299+ let at = aF._3
300+ let aH = J(I)
301+ let K = aH._1
302+ let L = aH._2
300303 let P = if (!(isDefined(K.assetId)))
301304 then "WAVES"
302305 else toBase58String(value(K.assetId))
303306 if (!(O(P)))
304307 then throw("asset not accepted")
305308 else {
306- let aH = ac(S)
307- let aw = aH._1
308- let ag = aH._2
309- if (!(aw))
309+ let aI = ac(S)
310+ let ax = aI._1
311+ let ag = aI._2
312+ if (!(ax))
310313 then throw("Something went wrong")
311314 else {
312315 let T = R(S)
313-[StringEntry((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + aF) + "_") + G))]
316+[StringEntry((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + G) + "_OPEN"), ((((((((toString(at) + "_") + toString(L)) + "_") + P) + "_") + aG) + "_") + G))]
314317 }
315318 }
316319 }
317320
318321
319322
320323 @Callable(I)
321-func acceptOffer (S,aI,aF) = {
322- let aJ = H(I)
323- let G = aJ._1
324- let ai = aJ._2
325- let at = aJ._3
324+func acceptOffer (S,aJ,aG) = {
325+ let aK = H(I)
326+ let G = aK._1
327+ let ai = aK._2
328+ let at = aK._3
326329 let T = R(S)
327330 if ((ai != T))
328331 then throw("You cannot do this action")
329332 else {
330- let aK = x((((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI) + "_OPEN"))
331- if ((aK == ""))
333+ let aL = x((((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ) + "_OPEN"))
334+ if ((aL == ""))
332335 then throw("Offer not found or not for sale")
333336 else {
334- let aL = ac(S)
335- let aw = aL._1
336- let ag = aL._2
337- if (!(aw))
337+ let aM = ac(S)
338+ let ax = aM._1
339+ let ag = aM._2
340+ if (!(ax))
338341 then throw("Something went wrong")
339342 else {
340- let ay = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
341- if ((size(ay) == 0))
343+ let az = x((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN"))
344+ if ((size(az) == 0))
342345 then throw("Sale Not found!")
343346 else {
344- let aM = ((((((("offer2nd_" + aF) + "_") + S) + "_") + T) + "_") + aI)
345- let aN = V(aM)
346- let X = aN._1
347- let P = aN._2
348- let W = aN._3
347+ let aN = ((((((("offer2nd_" + aG) + "_") + S) + "_") + T) + "_") + aJ)
348+ let aO = V(aN)
349+ let X = aO._1
350+ let P = aO._2
351+ let W = aO._3
349352 let L = value(parseInt(X[1]))
350- let aO = ah(L, P, S, ag, T, X[3])
351- let am = aO._1
352- let an = aO._2
353- let ao = aO._3
354- let ap = aO._4
355-[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aM + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + aF) + "_") + aI)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_to_") + aF)), am, an, ao, ap]
353+ let aP = ah(L, P, S, ag, T, X[3])
354+ let am = aP._1
355+ let an = aP._2
356+ let ao = aP._3
357+ let ap = aP._4
358+[DeleteEntry((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_OPEN")), DeleteEntry((aN + "_OPEN")), DeleteEntry(((("sale2nd_status_" + T) + "_") + S)), DeleteEntry(("current_owner_on_dapp_" + S)), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_") + aG) + "_") + aJ)), StringEntry((((((((((("sale2nd_info_" + T) + "_") + S) + "_") + ag) + "_") + toString(at)) + "_") + G) + "_CLOSED"), ((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(P))) + "_to_") + aG)), am, an, ao, ap]
356359 }
357360 }
358361 }
359362 }
360363 }
361364
362365
363366
364367 @Callable(I)
365-func cancelOffer (S,aI,T) = {
366- let aP = H(I)
367- let G = aP._1
368- let ai = aP._2
369- let at = aP._3
370- let aM = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aI)
371- let aQ = V(aM)
372- let X = aQ._1
373- let P = aQ._2
374- let W = aQ._3
375-[DeleteEntry((aM + "_OPEN")), StringEntry((((((aM + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
368+func cancelOffer (S,aJ,T) = {
369+ let aQ = H(I)
370+ let G = aQ._1
371+ let ai = aQ._2
372+ let at = aQ._3
373+ let aN = ((((((("offer2nd_" + ai) + "_") + S) + "_") + T) + "_") + aJ)
374+ let aR = V(aN)
375+ let X = aR._1
376+ let P = aR._2
377+ let W = aR._3
378+[DeleteEntry((aN + "_OPEN")), StringEntry((((((aN + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((W + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(ai)), parseIntValue(X[1]), P)]
376379 }
377380
378381
379382
380383 @Callable(I)
381384 func makeRequest (D,ag) = {
382- let aR = H(I)
383- let G = aR._1
384- let aS = aR._2
385- let at = aR._3
386- let aT = J(I)
387- let K = aT._1
388- let L = aT._2
385+ let aS = H(I)
386+ let G = aS._1
387+ let aT = aS._2
388+ let at = aS._3
389+ let aU = J(I)
390+ let K = aU._1
391+ let L = aU._2
389392 let P = if (!(isDefined(K.assetId)))
390393 then "WAVES"
391394 else toBase58String(value(K.assetId))
392395 if (!(O(P)))
393396 then throw("asset not accepted")
394397 else {
395- let aU = af(D, ag)
396- if (!(aU))
398+ let aV = af(D, ag)
399+ if (!(aV))
397400 then throw("Something went wrong")
398- else [StringEntry((((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aS) + "_") + G))]
401+ else [StringEntry((((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + G) + "_OPEN"), ((((((((((toString(at) + "_") + toString(L)) + "_") + toBase58String(value(K.assetId))) + "_") + D) + "_") + aT) + "_") + G))]
399402 }
400403 }
401404
402405
403406
404407 @Callable(I)
405-func fillRequest (D,aS,aI) = {
406- let aV = H(I)
407- let G = aV._1
408- let T = aV._2
409- let at = aV._3
410- let aW = J(I)
411- let K = aW._1
412- let aX = aW._2
413- let aY = if (if (isDefined(K.assetId))
408+func fillRequest (D,aT,aJ) = {
409+ let aW = H(I)
410+ let G = aW._1
411+ let T = aW._2
412+ let at = aW._3
413+ let aX = J(I)
414+ let K = aX._1
415+ let aY = aX._2
416+ let aZ = if (if (isDefined(K.assetId))
414417 then M(value(K.assetId))
415418 else false)
416419 then K.assetId
417420 else throw("No NFT found")
418- let aZ = split(w(("nft_" + toBase58String(value(aY)))), "_")
419- if ((size(aZ) == 0))
421+ let ba = split(w(("nft_" + toBase58String(value(aZ)))), "_")
422+ if ((size(ba) == 0))
420423 then throw("No NFT found")
421424 else {
422- let ba = split(x((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), "_")
423- if ((size(ba) == 1))
425+ let bb = split(x((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), "_")
426+ if ((size(bb) == 1))
424427 then throw("No request found")
425- else if ((ba[3] != aZ[5]))
428+ else if ((bb[3] != ba[5]))
426429 then throw("This NFT don't match the requested artwork")
427430 else {
428- let L = value(parseInt(ba[1]))
429- let bb = ah(L, fromBase58String(ba[2]), toBase58String(value(aY)), aZ[6], T, ba[4])
430- let am = bb._1
431- let an = bb._2
432- let ao = bb._3
433- let ap = bb._4
434-[DeleteEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_OPEN")), StringEntry((((((((("request2nd_" + aS) + "_") + aZ[6]) + "_") + D) + "_") + aI) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + ba[2]) + "_") + D) + "_") + aS) + "_") + T) + "_") + G)), am, an, ao, ap]
431+ let L = value(parseInt(bb[1]))
432+ let bc = ah(L, fromBase58String(bb[2]), toBase58String(value(aZ)), ba[6], T, bb[4])
433+ let am = bc._1
434+ let an = bc._2
435+ let ao = bc._3
436+ let ap = bc._4
437+[DeleteEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_OPEN")), StringEntry((((((((("request2nd_" + aT) + "_") + ba[6]) + "_") + D) + "_") + aJ) + "_CLOSED"), ((((((((((((toString(at) + "_") + toString(L)) + "_") + bb[2]) + "_") + D) + "_") + aT) + "_") + T) + "_") + G)), am, an, ao, ap]
435438 }
436439 }
437440 }
438441
439442
440443
441444 @Callable(I)
442-func cancelRequest (D,ag,bc) = {
443- let bd = H(I)
444- let G = bd._1
445- let aS = bd._2
446- let at = bd._3
447- let be = ((((((("request2nd_" + aS) + "_") + ag) + "_") + D) + "_") + bc)
448- let ba = x((be + "_OPEN"))
449- if ((size(ba) == 0))
445+func cancelRequest (D,ag,bd) = {
446+ let be = H(I)
447+ let G = be._1
448+ let aT = be._2
449+ let at = be._3
450+ let bf = ((((((("request2nd_" + aT) + "_") + ag) + "_") + D) + "_") + bd)
451+ let bb = x((bf + "_OPEN"))
452+ if ((size(bb) == 0))
450453 then throw("Request not found")
451454 else {
452- let bf = split(ba, "_")
453-[DeleteEntry((be + "_OPEN")), StringEntry((((((be + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((ba + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aS)), parseIntValue(bf[1]), fromBase58String(bf[2]))]
455+ let bg = split(bb, "_")
456+[DeleteEntry((bf + "_OPEN")), StringEntry((((((bf + "_") + toString(at)) + "_") + G) + "_CANCELLED"), ((bb + "_") + toString(at))), ScriptTransfer(Address(fromBase58String(aT)), parseIntValue(bg[1]), fromBase58String(bg[2]))]
454457 }
455458 }
456459
457460
458461
459462 @Callable(I)
460-func deleteEntry (bg) = {
463+func deleteEntry (bh) = {
461464 let ai = toString(addressFromPublicKey(I.callerPublicKey))
462465 if ((ai == k))
463- then [DeleteEntry(bg)]
466+ then [DeleteEntry(bh)]
464467 else throw("no")
465468 }
466469
467470

github/deemru/w8io/026f985 
122.39 ms