tx · 2Q4j5dJM71RdtMbder1nGbuT4dP8HhFr4sXhARVa9Xgb

3GpJhSPmFdaB1N3nbmGGnqUeC7jSK4iMbG1:  -0.01000000 Gic

2025.06.25 22:04 [6591] smart account 3GpJhSPmFdaB1N3nbmGGnqUeC7jSK4iMbG1 > SELF 0.00000000 Gic

{ "type": 13, "id": "2Q4j5dJM71RdtMbder1nGbuT4dP8HhFr4sXhARVa9Xgb", "fee": 1000000, "feeAssetId": null, "timestamp": 1750878313959, "version": 2, "chainId": 71, "sender": "3GpJhSPmFdaB1N3nbmGGnqUeC7jSK4iMbG1", "senderPublicKey": "3QpT3yez6M99264RVoDPZZ3oZ7JSPeYduUQDJqdhG82y", "proofs": [ "3vhscacsrEsyv9Vjeabh4tiCgqQiyshLa76KXnh6hfemodrirdhbN5YQu1bJbMdjFjGr8r4P4q38nJcmoa1ifKQC" ], "script": "base64:AAIFAAAAAAAAABwIAhIDCgEIEgMKAQESBAoCCAgSAwoBARIDCgEIAAAABgAAAAAMYWRtaW5BZGRyZXNzAgAAAA1hZG1pbl9hZGRyZXNzAAAAAANmZWUCAAAAA2ZlZQEAAAAPZ2V0QWRtaW5BZGRyZXNzAAAAAAQAAAAHJG1hdGNoMAkABCIAAAABBQAAAAxhZG1pbkFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABdAUAAAAHJG1hdGNoMAUAAAABdAkAAlgAAAABCAUAAAAEdGhpcwAAAAVieXRlcwEAAAAQZ2V0QXNzZXREZWNpbWFscwAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAIAAAADR0lDAAAAAAAAAAAIBAAAAAckbWF0Y2gwCQAD7AAAAAEJAAJZAAAAAQUAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAAAWEFAAAAByRtYXRjaDAIBQAAAAFhAAAACGRlY2ltYWxzAAAAAAAAAAAIAQAAABBnZXRBc3NldHF1YW50aXR5AAAAAQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAdhc3NldElkAgAAAANHSUMAAAAAADuaygAEAAAAByRtYXRjaDAJAAPsAAAAAQkAAlkAAAABBQAAAAdhc3NldElkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVBc3NldAQAAAABYQUAAAAHJG1hdGNoMAgFAAAAAWEAAAAIcXVhbnRpdHkAAAAAADuaygABAAAAD2dldElzUmVpc3N1YWJsZQAAAAEAAAAHYXNzZXRJZAMJAAAAAAAAAgUAAAAHYXNzZXRJZAIAAAADR0lDBgQAAAAHJG1hdGNoMAkAA+wAAAABCQACWQAAAAEFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABUFzc2V0BAAAAAFhBQAAAAckbWF0Y2gwCAUAAAABYQAAAApyZWlzc3VhYmxlBgAAAAUAAAABaQEAAAALY2hhbmdlQWRtaW4AAAABAAAAB2FkZHJlc3MEAAAABWFkbWluCQEAAAAPZ2V0QWRtaW5BZGRyZXNzAAAAAAMJAQAAAAIhPQAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAAFYWRtaW4JAAACAAAAAQIAAAAvT25seSB0aGUgQWRtaW4gaXRzZWxmIGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbi4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAMYWRtaW5BZGRyZXNzBQAAAAdhZGRyZXNzBQAAAANuaWwAAAABaQEAAAAJc2V0TkZURmVlAAAAAQAAAAZmZWVCcHMEAAAABWFkbWluCQEAAAAPZ2V0QWRtaW5BZGRyZXNzAAAAAAMJAQAAAAIhPQAAAAIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAAFYWRtaW4JAAACAAAAAQIAAAAuT25seSB0aGUgQWRtaW4gaXRzZWxmIGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgMDCQAAZgAAAAIAAAAAAAAAAAAFAAAABmZlZUJwcwYJAABmAAAAAgUAAAAGZmVlQnBzAAAAAAAAAAPoCQAAAgAAAAECAAAAK0ZlZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMTAwMCBiYXNpcyBwb2ludHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAA2ZlZQUAAAAGZmVlQnBzBQAAAANuaWwAAAABaQEAAAAJY3JlYXRlTkZUAAAAAgAAAARuYW1lAAAABGlwZnMDCQAAZgAAAAIAAAAAAAX14QAIBQAAAAFpAAAAA2ZlZQkAAAIAAAABAgAAADNFcnJvcjogTkZUIGZlZSBhbW91bnQgdG8gYmUgcGFpZCBpcyBsZXNzIHRoYW4gMSBHSUMDCQAAAAAAAAIFAAAABGlwZnMCAAAAAAkAAAIAAAABAgAAAB9FcnJvcjogUHV0IGEgdmFsaWQgSVBGUyBzdHJpbmcuAwkAAAAAAAACBQAAAARuYW1lAgAAAAAJAAACAAAAAQIAAAAjRXJyb3I6IFB1dCBhIHZhbGlkIE5GVCBuYW1lIHN0cmluZy4EAAAACW5mdENyZWF0ZQkABEIAAAAFBQAAAARuYW1lBQAAAARpcGZzAAAAAAAAAAABAAAAAAAAAAAABwQAAAAFaWROZnQJAAQ4AAAAAQUAAAAJbmZ0Q3JlYXRlCQAETAAAAAIFAAAACW5mdENyZWF0ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAEFAAAABWlkTmZ0BQAAAANuaWwAAAABaQEAAAAHc2VsbE5GVAAAAAEAAAALVmFsdWVUb1NlbGwDCQAAZgAAAAIAAAAAAAAAAGQFAAAAC1ZhbHVlVG9TZWxsCQAAAgAAAAECAAAAOEVycm9yOiBzZXQgYSBtaW5pbXVtIHZhbHVlICgwLjAwMDAwMTAwKSB0byBzZWxsIHlvdXIgTkZUBAAAAANuZnQJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACnBtdEFzc2V0SWQEAAAAByRtYXRjaDAIBQAAAANuZnQAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYQUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFhAgAAAANHSUMEAAAAC2lzUmVzc3VhYmxlCQEAAAAPZ2V0SXNSZWlzc3VhYmxlAAAAAQUAAAAKcG10QXNzZXRJZAQAAAANdG90YWxRdWFudGl0eQkBAAAAEGdldEFzc2V0cXVhbnRpdHkAAAABBQAAAApwbXRBc3NldElkBAAAAA10b3RhbERlY2ltYWxzCQEAAAAQZ2V0QXNzZXREZWNpbWFscwAAAAEFAAAACnBtdEFzc2V0SWQEAAAACk9sZE51bWJlckgJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAIaGlzdG9yeV8FAAAACnBtdEFzc2V0SWQAAAAAAAAAAAAEAAAAB251bWJlckgJAABkAAAAAgUAAAAKT2xkTnVtYmVySAAAAAAAAAAAAQQAAAAOT2xkTnVtYmVySFVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAIaGlzdG9yeV8FAAAACnBtdEFzc2V0SWQAAAAAAAAAAAAEAAAAC251bWJlckhVc2VyCQAAZAAAAAIFAAAACk9sZE51bWJlckgAAAAAAAAAAAEDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQCAAAAA0dJQwkAAAIAAAABAgAAABNFcnJvcjogSW52YWxpZCBORlQuAwMDCQEAAAABIQAAAAEFAAAAC2lzUmVzc3VhYmxlCQAAAAAAAAIFAAAADXRvdGFsUXVhbnRpdHkAAAAAAAAAAAEHCQAAAAAAAAIFAAAADXRvdGFsRGVjaW1hbHMAAAAAAAAAAAAHCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAICAAAACGlzX3NhbGVfBQAAAApwbXRBc3NldElkBgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAtwcmljZV9zYWxlXwUAAAAKcG10QXNzZXRJZAUAAAALVmFsdWVUb1NlbGwJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAA5jb2luX2FjY2VwdGVkXwUAAAAKcG10QXNzZXRJZAIAAAADR0lDCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAGc2FsZXJfBQAAAApwbXRBc3NldElkCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAIaGlzdG9yeV8JAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwUAAAALbnVtYmVySFVzZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIaGlzdG9yeV8JAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwIAAAABXwkAAaQAAAABBQAAAAtudW1iZXJIVXNlcgUAAAAKcG10QXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAhoaXN0b3J5XwUAAAAKcG10QXNzZXRJZAUAAAAHbnVtYmVySAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIaGlzdG9yeV8FAAAACnBtdEFzc2V0SWQJAAGkAAAAAQUAAAAHbnVtYmVySAIAAAAEc2VsbAUAAAADbmlsCQAAAgAAAAECAAAAJEVycm9yOiB0aGlzIGlzIGFuIGFzc2V0LCBub3QgYW4gTkZULgAAAAFpAQAAAAZidXlORlQAAAABAAAABW5mdElkBAAAAANwYXkJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAACnBtdEFzc2V0SWQEAAAAByRtYXRjaDAIBQAAAANwYXkAAAAHYXNzZXRJZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAABYQUAAAAHJG1hdGNoMAkAAlgAAAABBQAAAAFhAgAAAANHSUMEAAAABmZlZUJwcwkAATYAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAANmZWUEAAAABmlzU2FsZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTYpAAAAAQkAASwAAAACAgAAAAhpc19zYWxlXwUAAAAFbmZ0SWQHBAAAAAl2YWx1ZVNhbGUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDU1KQAAAAEJAAEsAAAAAgIAAAALcHJpY2Vfc2FsZV8FAAAABW5mdElkAAAAAAAAAAAABAAAAAlmZWVUb1NlbmQJAAE6AAAAAgkAATkAAAACCQABNgAAAAEIBQAAAANwYXkAAAAGYW1vdW50BQAAAAZmZWVCcHMJAAE2AAAAAQAAAAAAAAAnEAQAAAAJYWRtaW5BZGRyCQEAAAAPZ2V0QWRtaW5BZGRyZXNzAAAAAAQAAAAKT2xkTnVtYmVySAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAhoaXN0b3J5XwUAAAAKcG10QXNzZXRJZAAAAAAAAAAAAAQAAAAHbnVtYmVySAkAAGQAAAACBQAAAApPbGROdW1iZXJIAAAAAAAAAAABBAAAAA5PbGROdW1iZXJIVXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAhoaXN0b3J5XwUAAAAKcG10QXNzZXRJZAAAAAAAAAAAAAQAAAALbnVtYmVySFVzZXIJAABkAAAAAgUAAAAKT2xkTnVtYmVySAAAAAAAAAAAAQQAAAANdG9TZW5kVG9TYWxlcgkAATgAAAACCQABNgAAAAEIBQAAAANwYXkAAAAGYW1vdW50BQAAAAlmZWVUb1NlbmQDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkAgAAAANHSUMJAAACAAAAAQIAAAAcRXJyb3I6IEludmFsaWQgQXNzZXQgdG8gYnV5LgMJAQAAAAEhAAAAAQUAAAAGaXNTYWxlCQAAAgAAAAECAAAAH1RoaXMgTkZUIGlzIG5vIGxvbmdlciBmb3Igc2FsZS4DCQEAAAACIT0AAAACBQAAAAl2YWx1ZVNhbGUIBQAAAANwYXkAAAAGYW1vdW50CQAAAgAAAAECAAAAKEluc3VmZmljaWVudCB2YWx1ZSB0byBtYWtlIHRoZSBwdXJjaGFzZS4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAABW5mdElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAGc2FsZXJfBQAAAApwbXRBc3NldElkCQABoAAAAAEFAAAADXRvU2VuZFRvU2FsZXIFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAJYWRtaW5BZGRyCQABoAAAAAEFAAAACWZlZVRvU2VuZAUAAAAEdW5pdAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACAgAAAAhpc19zYWxlXwUAAAAKcG10QXNzZXRJZAcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAZzYWxlcl8FAAAACnBtdEFzc2V0SWQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAhoaXN0b3J5XwUAAAAKcG10QXNzZXRJZAUAAAAHbnVtYmVySAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIaGlzdG9yeV8FAAAACnBtdEFzc2V0SWQJAAGkAAAAAQUAAAAHbnVtYmVySAIAAAADYnV5BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleawiAYQ=", "height": 6591, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: DnFcsTBvMYcqykihzMRQZb4PaU5CW2tS1E3YLQ7nG9dG Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let adminAddress = "admin_address"
5+
6+let fee = "fee"
7+
8+func getAdminAddress () = match getString(adminAddress) {
9+ case t: String =>
10+ t
11+ case _ =>
12+ toBase58String(this.bytes)
13+}
14+
15+
16+func getAssetDecimals (assetId) = if ((assetId == "GIC"))
17+ then 8
18+ else match assetInfo(fromBase58String(assetId)) {
19+ case a: Asset =>
20+ a.decimals
21+ case _ =>
22+ 8
23+ }
24+
25+
26+func getAssetquantity (assetId) = if ((assetId == "GIC"))
27+ then 1000000000
28+ else match assetInfo(fromBase58String(assetId)) {
29+ case a: Asset =>
30+ a.quantity
31+ case _ =>
32+ 1000000000
33+ }
34+
35+
36+func getIsReissuable (assetId) = if ((assetId == "GIC"))
37+ then true
38+ else match assetInfo(fromBase58String(assetId)) {
39+ case a: Asset =>
40+ a.reissuable
41+ case _ =>
42+ true
43+ }
44+
45+
46+@Callable(i)
47+func changeAdmin (address) = {
48+ let admin = getAdminAddress()
49+ if ((toBase58String(i.caller.bytes) != admin))
50+ then throw("Only the Admin itself can invoke this function.")
51+ else [StringEntry(adminAddress, address)]
52+ }
53+
54+
55+
56+@Callable(i)
57+func setNFTFee (feeBps) = {
58+ let admin = getAdminAddress()
59+ if ((toBase58String(i.caller.bytes) != admin))
60+ then throw("Only the Admin itself can invoke this function")
61+ else if (if ((0 > feeBps))
62+ then true
63+ else (feeBps > 1000))
64+ then throw("Fee must be between 0 and 1000 basis points")
65+ else [IntegerEntry(fee, feeBps)]
66+ }
67+
68+
69+
70+@Callable(i)
71+func createNFT (name,ipfs) = if ((100000000 > i.fee))
72+ then throw("Error: NFT fee amount to be paid is less than 1 GIC")
73+ else if ((ipfs == ""))
74+ then throw("Error: Put a valid IPFS string.")
75+ else if ((name == ""))
76+ then throw("Error: Put a valid NFT name string.")
77+ else {
78+ let nftCreate = Issue(name, ipfs, 1, 0, false)
79+ let idNft = calculateAssetId(nftCreate)
80+[nftCreate, ScriptTransfer(i.caller, 1, idNft)]
81+ }
82+
83+
84+
85+@Callable(i)
86+func sellNFT (ValueToSell) = if ((100 > ValueToSell))
87+ then throw("Error: set a minimum value (0.00000100) to sell your NFT")
88+ else {
89+ let nft = i.payments[0]
90+ let pmtAssetId = match nft.assetId {
91+ case a: ByteVector =>
92+ toBase58String(a)
93+ case _ =>
94+ "GIC"
95+ }
96+ let isRessuable = getIsReissuable(pmtAssetId)
97+ let totalQuantity = getAssetquantity(pmtAssetId)
98+ let totalDecimals = getAssetDecimals(pmtAssetId)
99+ let OldNumberH = valueOrElse(getIntegerValue(this, ("history_" + pmtAssetId)), 0)
100+ let numberH = (OldNumberH + 1)
101+ let OldNumberHUser = valueOrElse(getIntegerValue(this, ("history_" + pmtAssetId)), 0)
102+ let numberHUser = (OldNumberH + 1)
103+ if ((pmtAssetId == "GIC"))
104+ then throw("Error: Invalid NFT.")
105+ else if (if (if (!(isRessuable))
106+ then (totalQuantity == 1)
107+ else false)
108+ then (totalDecimals == 0)
109+ else false)
110+ then [BooleanEntry(("is_sale_" + pmtAssetId), true), IntegerEntry(("price_sale_" + pmtAssetId), ValueToSell), StringEntry(("coin_accepted_" + pmtAssetId), "GIC"), StringEntry(("saler_" + pmtAssetId), toBase58String(i.caller.bytes)), IntegerEntry(("history_" + toBase58String(i.caller.bytes)), numberHUser), StringEntry(((("history_" + toBase58String(i.caller.bytes)) + "_") + toString(numberHUser)), pmtAssetId), IntegerEntry(("history_" + pmtAssetId), numberH), StringEntry((("history_" + pmtAssetId) + toString(numberH)), "sell")]
111+ else throw("Error: this is an asset, not an NFT.")
112+ }
113+
114+
115+
116+@Callable(i)
117+func buyNFT (nftId) = {
118+ let pay = i.payments[0]
119+ let pmtAssetId = match pay.assetId {
120+ case a: ByteVector =>
121+ toBase58String(a)
122+ case _ =>
123+ "GIC"
124+ }
125+ let feeBps = toBigInt(getIntegerValue(this, fee))
126+ let isSale = valueOrElse(getBooleanValue(("is_sale_" + nftId)), false)
127+ let valueSale = valueOrElse(getIntegerValue(("price_sale_" + nftId)), 0)
128+ let feeToSend = ((toBigInt(pay.amount) * feeBps) / toBigInt(10000))
129+ let adminAddr = getAdminAddress()
130+ let OldNumberH = valueOrElse(getIntegerValue(this, ("history_" + pmtAssetId)), 0)
131+ let numberH = (OldNumberH + 1)
132+ let OldNumberHUser = valueOrElse(getIntegerValue(this, ("history_" + pmtAssetId)), 0)
133+ let numberHUser = (OldNumberH + 1)
134+ let toSendToSaler = (toBigInt(pay.amount) - feeToSend)
135+ if ((pmtAssetId != "GIC"))
136+ then throw("Error: Invalid Asset to buy.")
137+ else if (!(isSale))
138+ then throw("This NFT is no longer for sale.")
139+ else if ((valueSale != pay.amount))
140+ then throw("Insufficient value to make the purchase.")
141+ else [ScriptTransfer(i.caller, 1, fromBase58String(nftId)), ScriptTransfer(addressFromStringValue(getStringValue(this, ("saler_" + pmtAssetId))), toInt(toSendToSaler), unit), ScriptTransfer(addressFromStringValue(adminAddr), toInt(feeToSend), unit), BooleanEntry(("is_sale_" + pmtAssetId), false), StringEntry(("saler_" + pmtAssetId), toBase58String(i.caller.bytes)), IntegerEntry(("history_" + pmtAssetId), numberH), StringEntry((("history_" + pmtAssetId) + toString(numberH)), "buy")]
142+ }
143+
144+
145+@Verifier(tx)
146+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
147+

github/gicsportsofficial/g8-explorer
87.96 ms