tx · 6jJwfeyjCmZ7SMERF9vngfQiWN5pZmMhQo9wdj87Ma1j

3N4boZRUJ2LxY5jLyp6hmxGktqnawQidu6H:  -0.01000000 Waves

2022.11.11 09:59 [2312155] smart account 3N4boZRUJ2LxY5jLyp6hmxGktqnawQidu6H > SELF 0.00000000 Waves

{ "type": 13, "id": "6jJwfeyjCmZ7SMERF9vngfQiWN5pZmMhQo9wdj87Ma1j", "fee": 1000000, "feeAssetId": null, "timestamp": 1668149946033, "version": 2, "chainId": 84, "sender": "3N4boZRUJ2LxY5jLyp6hmxGktqnawQidu6H", "senderPublicKey": "BDeCphaaC4MZvfmbJqQZ78EvuEBZTJ1VEW7fbxue8BUu", "proofs": [ "5H3exnrQyHXzmGnY9eAWdo2wNzfpXhkgyhZk24yQ3B6Axy3nXuWQvRS8Pgz5r3ovTB6XbXjNgodXB9XpezV4SCPb" ], "script": "base64:BgISCAISBAoCCAgSAwoBCBIDCgEBBQAJc2VwYXJhdG9yAgFfAARrQnV5AgNidXkABWtTZWxsAgRzZWxsAAZrUHJpY2UCBXByaWNlAQVpc05mdAEHYXNzZXRJZAQHJG1hdGNoMAkA7AcBBQdhc3NldElkAwkAAQIFByRtYXRjaDACBUFzc2V0BAV0b2tlbgUHJG1hdGNoMAMDCQAAAggFBXRva2VuCGRlY2ltYWxzAAAJAAACCAUFdG9rZW4IcXVhbnRpdHkAAQcJAAACCAUFdG9rZW4KcmVpc3N1YWJsZQcHBwMBaQEIaXNzdWVOZnQCBG5hbWUEbWV0YQQIbmV3VG9rZW4JAMIIBQUEbmFtZQUEbWV0YQABAAAHBAdpc3N1ZUlkCQC4CAEFCG5ld1Rva2VuCQDMCAIFCG5ld1Rva2VuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdpc3N1ZUlkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQDYBAEFB2lzc3VlSWQFCXNlcGFyYXRvcgIFT3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwBaQEGYnV5TkZUAQVuZnRJRAQHYXNzZXRJZAkA2QQBBQVuZnRJRAQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQFcHJpY2UJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQCsAgIJAKwCAgUGa1ByaWNlBQlzZXBhcmF0b3IFBW5mdElEAh5UaGVyZSBpcyBubyBwcmljZSBmb3IgdGhpcyBORlQEBW93bmVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgVPd25lcgIITm8gb3duZXIDCQECIT0CCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQJAAIBAgxQYXkgaW4gd2F2ZXMDCQBmAgkBDXBhcnNlSW50VmFsdWUBBQVwcmljZQUGYW1vdW50CQACAQIPSW52YWxpZCBwYXltZW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQV2YWx1ZQEJAKYIAQUFb3duZXIJAQ1wYXJzZUludFZhbHVlAQUFcHJpY2UFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBGtCdXkJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yCQCkAwEFBmFtb3VudAUDbmlsAWkBB3NlbGxORlQBBXByaWNlBAskdDAxMzk4MTQ4MwkAlAoCCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAZ0b2tlbjAIBQskdDAxMzk4MTQ4MwJfMQQHYW1vdW50MAgFCyR0MDEzOTgxNDgzAl8yAwkBASEBCQEFaXNOZnQBBQZ0b2tlbjAJAAIBAhBUb2tlbiBpcyBub3QgTkZUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAKQDAQUFcHJpY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkApQgBCAUBaQZjYWxsZXIFCXNlcGFyYXRvcgUFa1NlbGwJAKwCAgkArAICCQDYBAEFBnRva2VuMAUJc2VwYXJhdG9yCQCkAwEFB2Ftb3VudDAFA25pbAAxfJi2", "height": 2312155, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: JBHvKDnQMeu2kpZQV5Ypg6Pkvx4RgtGeRUCYLsb8ysky Next: EcxZeLzmt4g7gXgLDKVKYjy5N3iiZzKPWZtH1RUkYV8r Diff:
OldNewDifferences
2222
2323
2424 @Callable(i)
25-func issueNft (name,meta,price) = {
25+func issueNft (name,meta) = {
2626 let newToken = Issue(name, meta, 1, 0, false)
2727 let issueId = calculateAssetId(newToken)
28-[newToken, StringEntry(((kPrice + separator) + toBase58String(issueId)), toString(price))]
28+[newToken, ScriptTransfer(i.caller, 1, issueId), StringEntry(((toBase58String(issueId) + separator) + "Owner"), toString(i.caller))]
2929 }
3030
3131
3535 let assetId = fromBase58String(nftID)
3636 let amount = value(i.payments[0].amount)
3737 let price = valueOrErrorMessage(getString(((kPrice + separator) + nftID)), "There is no price for this NFT")
38+ let owner = valueOrErrorMessage(getStringValue(((nftID + separator) + "Owner")), "No owner")
3839 if ((i.payments[0].assetId != unit))
3940 then throw("Pay in waves")
4041 else if ((parseIntValue(price) > amount))
4142 then throw("Invalid payment")
42- else [ScriptTransfer(i.caller, 1, assetId), StringEntry(((toString(i.caller) + separator) + kBuy), ((nftID + separator) + toString(amount)))]
43+ else [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(value(addressFromString(owner)), parseIntValue(price), unit), StringEntry(((toString(i.caller) + separator) + kBuy), ((nftID + separator) + toString(amount)))]
4344 }
4445
4546
4647
4748 @Callable(i)
48-func sellNFT () = {
49- let $t011791264 = $Tuple2(value(i.payments[0].assetId), value(i.payments[0].amount))
50- let token0 = $t011791264._1
51- let amount0 = $t011791264._2
52- let price = getStringValue(((kPrice + separator) + valueOrErrorMessage(toBase58String(token0), "There is no price for this NFT")))
49+func sellNFT (price) = {
50+ let $t013981483 = $Tuple2(value(i.payments[0].assetId), value(i.payments[0].amount))
51+ let token0 = $t013981483._1
52+ let amount0 = $t013981483._2
5353 if (!(isNft(token0)))
5454 then throw("Token is not NFT")
55- else [ScriptTransfer(i.caller, parseIntValue(price), unit), StringEntry(((toString(i.caller) + separator) + kSell), ((toBase58String(token0) + separator) + toString(amount0)))]
55+ else [StringEntry(((kPrice + separator) + toBase58String(value(i.payments[0].assetId))), toString(price)), ScriptTransfer(i.caller, 1, value(i.payments[0].assetId)), StringEntry(((toString(i.caller) + separator) + kSell), ((toBase58String(token0) + separator) + toString(amount0)))]
5656 }
5757
5858
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separator = "_"
55
66 let kBuy = "buy"
77
88 let kSell = "sell"
99
1010 let kPrice = "price"
1111
1212 func isNft (assetId) = match assetInfo(assetId) {
1313 case token: Asset =>
1414 if (if ((token.decimals == 0))
1515 then (token.quantity == 1)
1616 else false)
1717 then (token.reissuable == false)
1818 else false
1919 case _ =>
2020 false
2121 }
2222
2323
2424 @Callable(i)
25-func issueNft (name,meta,price) = {
25+func issueNft (name,meta) = {
2626 let newToken = Issue(name, meta, 1, 0, false)
2727 let issueId = calculateAssetId(newToken)
28-[newToken, StringEntry(((kPrice + separator) + toBase58String(issueId)), toString(price))]
28+[newToken, ScriptTransfer(i.caller, 1, issueId), StringEntry(((toBase58String(issueId) + separator) + "Owner"), toString(i.caller))]
2929 }
3030
3131
3232
3333 @Callable(i)
3434 func buyNFT (nftID) = {
3535 let assetId = fromBase58String(nftID)
3636 let amount = value(i.payments[0].amount)
3737 let price = valueOrErrorMessage(getString(((kPrice + separator) + nftID)), "There is no price for this NFT")
38+ let owner = valueOrErrorMessage(getStringValue(((nftID + separator) + "Owner")), "No owner")
3839 if ((i.payments[0].assetId != unit))
3940 then throw("Pay in waves")
4041 else if ((parseIntValue(price) > amount))
4142 then throw("Invalid payment")
42- else [ScriptTransfer(i.caller, 1, assetId), StringEntry(((toString(i.caller) + separator) + kBuy), ((nftID + separator) + toString(amount)))]
43+ else [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(value(addressFromString(owner)), parseIntValue(price), unit), StringEntry(((toString(i.caller) + separator) + kBuy), ((nftID + separator) + toString(amount)))]
4344 }
4445
4546
4647
4748 @Callable(i)
48-func sellNFT () = {
49- let $t011791264 = $Tuple2(value(i.payments[0].assetId), value(i.payments[0].amount))
50- let token0 = $t011791264._1
51- let amount0 = $t011791264._2
52- let price = getStringValue(((kPrice + separator) + valueOrErrorMessage(toBase58String(token0), "There is no price for this NFT")))
49+func sellNFT (price) = {
50+ let $t013981483 = $Tuple2(value(i.payments[0].assetId), value(i.payments[0].amount))
51+ let token0 = $t013981483._1
52+ let amount0 = $t013981483._2
5353 if (!(isNft(token0)))
5454 then throw("Token is not NFT")
55- else [ScriptTransfer(i.caller, parseIntValue(price), unit), StringEntry(((toString(i.caller) + separator) + kSell), ((toBase58String(token0) + separator) + toString(amount0)))]
55+ else [StringEntry(((kPrice + separator) + toBase58String(value(i.payments[0].assetId))), toString(price)), ScriptTransfer(i.caller, 1, value(i.payments[0].assetId)), StringEntry(((toString(i.caller) + separator) + kSell), ((toBase58String(token0) + separator) + toString(amount0)))]
5656 }
5757
5858

github/deemru/w8io/026f985 
30.84 ms