tx · AFZHWFFWCYh2mHjGGRdMnEdvyLM4Ep3roPXHeEX3HkkW 3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx: -0.01000000 Waves 2022.11.17 13:34 [2320994] smart account 3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx > SELF 0.00000000 Waves
{ "type": 13, "id": "AFZHWFFWCYh2mHjGGRdMnEdvyLM4Ep3roPXHeEX3HkkW", "fee": 1000000, "feeAssetId": null, "timestamp": 1668681252782, "version": 2, "chainId": 84, "sender": "3N85YW6NZ9pLYvSdt1ASMQTGxvncnU1vUNx", "senderPublicKey": "EKZmHJ5bK3qKKgRdq8rAamt9qrDbVMLARzRqXoQW258v", "proofs": [ "uaEve29niWmC2yg2sg3FquwGehPSmtR86jpEu7BYuCAVSAXvj2Vz4e9Q2brHWfwaQSPzqEHjX8Uvg6d2o2nPDus" ], "script": "base64:BgIfCAISCwoJCAgICAgBCAgIEgQKAggIEgMKAQgSAwoBAQUACXNlcGFyYXRvcgIBXwAEa0J1eQIDYnV5AAVrU2VsbAIEc2VsbAAGa1ByaWNlAgVwcmljZQEFaXNOZnQBB2Fzc2V0SWQEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQFdG9rZW4FByRtYXRjaDADAwkAAAIIBQV0b2tlbghkZWNpbWFscwAACQAAAggFBXRva2VuCHF1YW50aXR5AAEHCQAAAggFBXRva2VuCnJlaXNzdWFibGUHBwcEAWkBCWNyZWF0ZU5mdAkIbmZ0X25hbWUJbmZ0X293bmVyD25mdF9kQXBwQWRkcmVzcwhuZnRfdHlwZQhuZnRfdGFncxFuZnRfc2VsbGluZ19wcmljZQ9uZnRfZGVzY3JpcHRpb24KbmZ0X29uU2VsbAhuZnRfZGF0YQQIbmV3VG9rZW4JAMIIBQUIbmZ0X25hbWUFD25mdF9kZXNjcmlwdGlvbgABAAAHBAdpc3N1ZUlkCQC4CAEFCG5ld1Rva2VuCQDMCAIFCG5ld1Rva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdpc3N1ZUlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIFT3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X3R5cGUFCG5mdF90eXBlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIIbmZ0X3RhZ3MFCG5mdF90YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIPbmZ0X2RBcHBBZGRyZXNzBQ9uZnRfZEFwcEFkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIRbmZ0X3NlbGxpbmdfcHJpY2UFEW5mdF9zZWxsaW5nX3ByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIKbmZ0X29uU2VsbAUKbmZ0X29uU2VsbAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF9kYXRhBQhuZnRfZGF0YQUDbmlsAWkBCGlzc3VlTmZ0AgRuYW1lBG1ldGEECG5ld1Rva2VuCQDCCAUFBG5hbWUFBG1ldGEAAQAABwQHaXNzdWVJZAkAuAgBBQhuZXdUb2tlbgkAzAgCBQhuZXdUb2tlbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHaXNzdWVJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICBU93bmVyCQClCAEIBQFpBmNhbGxlcgUDbmlsAWkBBmJ1eU5GVAEFbmZ0SUQEB2Fzc2V0SWQJANkEAQUFbmZ0SUQEBmFtb3VudAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBXByaWNlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkArAICCQCsAgIFBmtQcmljZQUJc2VwYXJhdG9yBQVuZnRJRAIeVGhlcmUgaXMgbm8gcHJpY2UgZm9yIHRoaXMgTkZUBAVvd25lcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgIFT3duZXICCE5vIG93bmVyAwkBAiE9AggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0CQACAQIMUGF5IGluIHdhdmVzAwkAZgIJAQ1wYXJzZUludFZhbHVlAQUFcHJpY2UFBmFtb3VudAkAAgECD0ludmFsaWQgcGF5bWVudAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEFdmFsdWUBCQCmCAEFBW93bmVyCQENcGFyc2VJbnRWYWx1ZQEFBXByaWNlBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQFA25pbAFpAQdzZWxsTkZUAQVwcmljZQQLJHQwMjM2OTI0NTQJAJQKAgkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQGdG9rZW4wCAULJHQwMjM2OTI0NTQCXzEEB2Ftb3VudDAIBQskdDAyMzY5MjQ1NAJfMgMJAQEhAQkBBWlzTmZ0AQUGdG9rZW4wCQACAQIQVG9rZW4gaXMgbm90IE5GVAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IJANgEAQkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkCQCkAwEFBXByaWNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQVrU2VsbAkArAICCQCsAgIJANgEAQUGdG9rZW4wBQlzZXBhcmF0b3IJAKQDAQUHYW1vdW50MAUDbmlsACX1Oo8=", "height": 2320994, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FDvhiVprdEeEKCffhSYZyMUr4CTr5yJisyZNVuAqfcFb Next: yBuydcbhmM11yHjwq2TRPaaZs39AYMQKaJLvGaapsHw Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "_" | |
5 | 5 | ||
6 | 6 | let b = "buy" | |
7 | 7 | ||
8 | 8 | let c = "sell" | |
9 | 9 | ||
10 | 10 | let d = "price" | |
11 | 11 | ||
12 | 12 | func e (f) = { | |
13 | 13 | let g = assetInfo(f) | |
14 | 14 | if ($isInstanceOf(g, "Asset")) | |
15 | 15 | then { | |
16 | 16 | let h = g | |
17 | 17 | if (if ((h.decimals == 0)) | |
18 | 18 | then (h.quantity == 1) | |
19 | 19 | else false) | |
20 | 20 | then (h.reissuable == false) | |
21 | 21 | else false | |
22 | 22 | } | |
23 | 23 | else false | |
24 | 24 | } | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | @Callable(i) | |
28 | 28 | func createNft (j,k,l,m,n,o,p,q,r) = { | |
29 | 29 | let s = Issue(j, p, 1, 0, false) | |
30 | 30 | let t = calculateAssetId(s) | |
31 | 31 | [s, ScriptTransfer(i.caller, 1, t), StringEntry(((toBase58String(t) + a) + "Owner"), toString(i.caller)), StringEntry(((toBase58String(t) + a) + "nft_type"), m), StringEntry(((toBase58String(t) + a) + "nft_tags"), n), StringEntry(((toBase58String(t) + a) + "nft_dAppAddress"), l), IntegerEntry(((toBase58String(t) + a) + "nft_selling_price"), o), StringEntry(((toBase58String(t) + a) + "nft_onSell"), q), StringEntry(((toBase58String(t) + a) + "nft_data"), r)] | |
32 | 32 | } | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | ||
36 | 36 | @Callable(i) | |
37 | 37 | func issueNft (u,v) = { | |
38 | 38 | let s = Issue(u, v, 1, 0, false) | |
39 | 39 | let t = calculateAssetId(s) | |
40 | 40 | [s, ScriptTransfer(i.caller, 1, t), StringEntry(((toBase58String(t) + a) + "Owner"), toString(i.caller))] | |
41 | 41 | } | |
42 | 42 | ||
43 | 43 | ||
44 | 44 | ||
45 | 45 | @Callable(i) | |
46 | 46 | func buyNFT (w) = { | |
47 | 47 | let f = fromBase58String(w) | |
48 | 48 | let x = value(i.payments[0].amount) | |
49 | 49 | let y = valueOrErrorMessage(getString(((d + a) + w)), "There is no price for this NFT") | |
50 | 50 | let z = valueOrErrorMessage(getStringValue(((w + a) + "Owner")), "No owner") | |
51 | 51 | if ((i.payments[0].assetId != unit)) | |
52 | 52 | then throw("Pay in waves") | |
53 | 53 | else if ((parseIntValue(y) > x)) | |
54 | 54 | then throw("Invalid payment") | |
55 | 55 | else [ScriptTransfer(i.caller, 1, f), ScriptTransfer(value(addressFromString(z)), parseIntValue(y), unit), StringEntry(((toString(i.caller) + a) + b), ((w + a) + toString(x)))] | |
56 | 56 | } | |
57 | 57 | ||
58 | 58 | ||
59 | 59 | ||
60 | 60 | @Callable(i) | |
61 | 61 | func sellNFT (y) = { | |
62 | 62 | let A = $Tuple2(value(i.payments[0].assetId), value(i.payments[0].amount)) | |
63 | 63 | let B = A._1 | |
64 | 64 | let C = A._2 | |
65 | 65 | if (!(e(B))) | |
66 | 66 | then throw("Token is not NFT") | |
67 | 67 | else [StringEntry(((d + a) + toBase58String(value(i.payments[0].assetId))), toString(y)), StringEntry(((toString(i.caller) + a) + c), ((toBase58String(B) + a) + toString(C)))] | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 |
github/deemru/w8io/169f3d6 29.90 ms ◑