tx · A1ymZkp5Y4w2DzLD8iAvG6gL6RAK6tiRrsv2BhENKu5Q

3N9cKCHp6ZLMgz7rRgF8Q8DEt8zbtd1Ht7F:  -0.01000000 Waves

2023.01.25 13:20 [2420387] smart account 3N9cKCHp6ZLMgz7rRgF8Q8DEt8zbtd1Ht7F > SELF 0.00000000 Waves

{ "type": 13, "id": "A1ymZkp5Y4w2DzLD8iAvG6gL6RAK6tiRrsv2BhENKu5Q", "fee": 1000000, "feeAssetId": null, "timestamp": 1674642134558, "version": 2, "chainId": 84, "sender": "3N9cKCHp6ZLMgz7rRgF8Q8DEt8zbtd1Ht7F", "senderPublicKey": "3V22YUj3GF4AeBxdWx8rgGdG4groE4W6P2s4sAkshe7R", "proofs": [ "3m6FdTxa4RR67PDRHkL6ksYZXarU1kRBHQ9adgVtVXM1bfr7HKnfHYgSpBwaT6XYB6ZanVECQzVvf8j4tFNhZpNB" ], "script": "base64:BgIgCAISCwoJCAgICAgBCAgIEgMKAQgSBAoCCAgSBAoCCAgLAAlzZXBhcmF0b3ICAV8ABGtCdXkCA2J1eQAGa1ByaWNlAgVwcmljZQAFa1NlbGwCBHNlbGwABXRlYW1zASCFY5Wj84iOsN4MF44ITr+aP5K7Jts66HaOFtwUIipIfgAFV0FWRVMBAAASbWF4QXVjdGlvbkR1cmF0aW9uAAcABGtCaWQCA2JpZAAMc3RhdHVzRm9yTkZUCQCWCgQCBE9QRU4CBkNMT1NFRAIIUkVXQVJERUQCCENBTkNFTEVEAAtkQXBwQWRkcmVzcwEaAVRKuE9s3sLak+30julKNvjVT3+V1VVbXaABBWlzTmZ0AQdhc3NldElkBAckbWF0Y2gwCQDsBwEFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBXRva2VuBQckbWF0Y2gwAwMJAAACCAUFdG9rZW4IZGVjaW1hbHMAAAkAAAIIBQV0b2tlbghxdWFudGl0eQABBwkAAAIIBQV0b2tlbgpyZWlzc3VhYmxlBwcHBAFpAQljcmVhdGVOZnQJCG5mdF9uYW1lCW5mdF9vd25lcg9uZnRfZEFwcEFkZHJlc3MIbmZ0X3R5cGUIbmZ0X3RhZ3MRbmZ0X3NlbGxpbmdfcHJpY2UPbmZ0X2Rlc2NyaXB0aW9uCm5mdF9vblNlbGwIbmZ0X2RhdGEECG5ld1Rva2VuCQDCCAUFCG5mdF9uYW1lBQ9uZnRfZGVzY3JpcHRpb24AAQAABwQHaXNzdWVJZAkAuAgBBQhuZXdUb2tlbgQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCBQhuZXdUb2tlbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQUHaXNzdWVJZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICBU93bmVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90eXBlBQhuZnRfdHlwZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCG5mdF90YWdzBQhuZnRfdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICD25mdF9kQXBwQWRkcmVzcwUPbmZ0X2RBcHBBZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICEW5mdF9zZWxsaW5nX3ByaWNlBRFuZnRfc2VsbGluZ19wcmljZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkA2AQBBQdpc3N1ZUlkBQlzZXBhcmF0b3ICCm5mdF9vblNlbGwFCm5mdF9vblNlbGwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUHaXNzdWVJZAUJc2VwYXJhdG9yAghuZnRfZGF0YQUIbmZ0X2RhdGEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJANgEAQUEdHhJZAUJc2VwYXJhdG9yAglpc3N1ZV9uZnQJANgEAQUHaXNzdWVJZAUDbmlsAWkBB3NlbGxORlQBBXByaWNlBAR0eElkCAUBaQ10cmFuc2FjdGlvbklkBAZzZWxsZXIICAUBaQZjYWxsZXIFYnl0ZXMECyR0MDE4NzkxOTY0CQCUCgIJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBBXZhbHVlAQgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBnRva2VuMAgFCyR0MDE4NzkxOTY0Al8xBAdhbW91bnQwCAULJHQwMTg3OTE5NjQCXzIDCQEBIQEJAQVpc05mdAEFBnRva2VuMAkAAgECEFRva2VuIGlzIG5vdCBORlQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBmtQcmljZQUJc2VwYXJhdG9yCQDYBAEJAQV2YWx1ZQEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFcHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBWtTZWxsCQCsAgIJAKwCAgkA2AQBBQZ0b2tlbjAFCXNlcGFyYXRvcgkApAMBBQdhbW91bnQwBQNuaWwBaQEGYnV5TkZUAgVuZnRJRBFjdXJyZW50X25mdF9vd25lcgQHYXNzZXRJZAkA2QQBBQVuZnRJRAQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAQQY2hlY2tPd25lcklzU2FtZQQHJG1hdGNoMAkAnQgCBQR0aGlzCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWEHBAVwcmljZQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQCsAgIJAKwCAgkArAICBQZrUHJpY2UFCXNlcGFyYXRvcgUFbmZ0SUQCAV8FEWN1cnJlbnRfbmZ0X293bmVyAwkAAAIFEWN1cnJlbnRfbmZ0X293bmVyCQClCAEIBQFpBmNhbGxlcgkAAgECKWN1cnJlbnQgT3duZXIgb2YgTkZUIG5vdCBhYmxlIHRvIHB1cmNoYXNlAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUFdGVhbXMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQZhbW91bnQFBXRlYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQClCAEIBQFpBmNhbGxlcgUJc2VwYXJhdG9yBQRrQnV5CQCsAgIJAKwCAgUFbmZ0SUQFCXNlcGFyYXRvcgkApAMBBQZhbW91bnQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBG5mdF8FEWN1cnJlbnRfbmZ0X293bmVyAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yAgZfb3duZXIJAKUIAQgFAWkGY2FsbGVyBQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFEWN1cnJlbnRfbmZ0X293bmVyBQZhbW91bnQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyBQlzZXBhcmF0b3IFBGtCdXkJAKwCAgkArAICBQVuZnRJRAUJc2VwYXJhdG9yCQCkAwEFBmFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIEbmZ0XwURY3VycmVudF9uZnRfb3duZXICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIFBW5mdElEBQlzZXBhcmF0b3ICBl9vd25lcgkApQgBCAUBaQZjYWxsZXIFA25pbAFpARJtYW51YWxGdW5kVHJhbnNmZXICDXJlY2VwaWVudEFkZHIHbWVzc2FnZQQGY2FsbGVyCAgFAWkGY2FsbGVyBWJ5dGVzBAdyZWNpdmVyCQDZBAEFDXJlY2VwaWVudEFkZHIEBmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQDCQAAAggJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAglfdHJhbnNmZXIFBmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAgxfdHJhbnNmZXJfdG8FDXJlY2VwaWVudEFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdyZWNpdmVyBQZhbW91bnQFBHVuaXQFA25pbAMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBXRlYW1zCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAglfdHJhbnNmZXIFBmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJANgEAQUGY2FsbGVyAgxfdHJhbnNmZXJfdG8FDXJlY2VwaWVudEFkZHIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdyZWNpdmVyBQZhbW91bnQFBXRlYW1zBQNuaWwFA25pbACQDUAL", "height": 2420387, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ANQZbZpg6CJcnMoGomzFR2Q74fX4MVjGaEu3mNrPDe6W Next: BL7XxGzozt7LoEqAmdxenwAkSFcYzwTHq7gEmg4SpGkS Diff:
OldNewDifferences
8383 let reciver = fromBase58String(recepientAddr)
8484 let amount = i.payments[0].amount
8585 if ((i.payments[0].assetId == unit))
86- then [IntegerEntry((toBase58String(caller) + "_transfer"), amount), StringEntry((toBase58String(caller) + "_transfer_to"), recepientAddr), ScriptTransfer(Address(reciver), amount, WAVES)]
86+ then [IntegerEntry((toBase58String(caller) + "_transfer"), amount), StringEntry((toBase58String(caller) + "_transfer_to"), recepientAddr), ScriptTransfer(Address(reciver), amount, unit)]
8787 else if ((i.payments[0].assetId == teams))
8888 then [IntegerEntry((toBase58String(caller) + "_transfer"), amount), StringEntry((toBase58String(caller) + "_transfer_to"), recepientAddr), ScriptTransfer(Address(reciver), amount, teams)]
8989 else nil
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 kPrice = "price"
99
1010 let kSell = "sell"
1111
1212 let teams = base58'9yhJDfWjPpv6tFjWRD1AJyBQwausJf2ZdxzLn86Uknnq'
1313
1414 let WAVES = base58''
1515
1616 let maxAuctionDuration = 7
1717
1818 let kBid = "bid"
1919
2020 let statusForNFT = $Tuple4("OPEN", "CLOSED", "REWARDED", "CANCELED")
2121
2222 let dAppAddress = base58'3MvjAaDYHpS4A5K4CV3kZMMEH9m9JdBSvbq'
2323
2424 func isNft (assetId) = match assetInfo(assetId) {
2525 case token: Asset =>
2626 if (if ((token.decimals == 0))
2727 then (token.quantity == 1)
2828 else false)
2929 then (token.reissuable == false)
3030 else false
3131 case _ =>
3232 false
3333 }
3434
3535
3636 @Callable(i)
3737 func createNft (nft_name,nft_owner,nft_dAppAddress,nft_type,nft_tags,nft_selling_price,nft_description,nft_onSell,nft_data) = {
3838 let newToken = Issue(nft_name, nft_description, 1, 0, false)
3939 let issueId = calculateAssetId(newToken)
4040 let txId = i.transactionId
4141 [newToken, ScriptTransfer(i.caller, 1, issueId), StringEntry(((toBase58String(issueId) + separator) + "Owner"), toString(i.caller)), StringEntry(((toBase58String(issueId) + separator) + "nft_type"), nft_type), StringEntry(((toBase58String(issueId) + separator) + "nft_tags"), nft_tags), StringEntry(((toBase58String(issueId) + separator) + "nft_dAppAddress"), nft_dAppAddress), IntegerEntry(((toBase58String(issueId) + separator) + "nft_selling_price"), nft_selling_price), StringEntry(((toBase58String(issueId) + separator) + "nft_onSell"), nft_onSell), StringEntry(((toBase58String(issueId) + separator) + "nft_data"), nft_data), StringEntry(((toBase58String(txId) + separator) + "issue_nft"), toBase58String(issueId))]
4242 }
4343
4444
4545
4646 @Callable(i)
4747 func sellNFT (price) = {
4848 let txId = i.transactionId
4949 let seller = i.caller.bytes
5050 let $t018791964 = $Tuple2(value(i.payments[0].assetId), value(i.payments[0].amount))
5151 let token0 = $t018791964._1
5252 let amount0 = $t018791964._2
5353 if (!(isNft(token0)))
5454 then throw("Token is not NFT")
5555 else [StringEntry(((kPrice + separator) + toBase58String(value(i.payments[0].assetId))), price), StringEntry(((toString(i.caller) + separator) + kSell), ((toBase58String(token0) + separator) + toString(amount0)))]
5656 }
5757
5858
5959
6060 @Callable(i)
6161 func buyNFT (nftID,current_nft_owner) = {
6262 let assetId = fromBase58String(nftID)
6363 let amount = value(i.payments[0].amount)
6464 let checkOwnerIsSame = match getString(this, (("nft_" + current_nft_owner) + "_owner")) {
6565 case a: String =>
6666 a
6767 case _ =>
6868 false
6969 }
7070 let price = getStringValue(((((kPrice + separator) + nftID) + "_") + current_nft_owner))
7171 if ((current_nft_owner == toString(i.caller)))
7272 then throw("current Owner of NFT not able to purchase")
7373 else if ((i.payments[0].assetId == teams))
7474 then [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(Address(fromBase58String(current_nft_owner)), amount, teams), StringEntry(((toString(i.caller) + separator) + kBuy), ((nftID + separator) + toString(amount))), DeleteEntry((("nft_" + current_nft_owner) + "_owner")), StringEntry((("nft_" + current_nft_owner) + "_owner"), toString(i.caller)), StringEntry(((nftID + separator) + "_owner"), toString(i.caller))]
7575 else [ScriptTransfer(i.caller, 1, assetId), ScriptTransfer(Address(fromBase58String(current_nft_owner)), amount, unit), StringEntry(((toString(i.caller) + separator) + kBuy), ((nftID + separator) + toString(amount))), DeleteEntry((("nft_" + current_nft_owner) + "_owner")), StringEntry((("nft_" + current_nft_owner) + "_owner"), toString(i.caller)), StringEntry(((nftID + separator) + "_owner"), toString(i.caller))]
7676 }
7777
7878
7979
8080 @Callable(i)
8181 func manualFundTransfer (recepientAddr,message) = {
8282 let caller = i.caller.bytes
8383 let reciver = fromBase58String(recepientAddr)
8484 let amount = i.payments[0].amount
8585 if ((i.payments[0].assetId == unit))
86- then [IntegerEntry((toBase58String(caller) + "_transfer"), amount), StringEntry((toBase58String(caller) + "_transfer_to"), recepientAddr), ScriptTransfer(Address(reciver), amount, WAVES)]
86+ then [IntegerEntry((toBase58String(caller) + "_transfer"), amount), StringEntry((toBase58String(caller) + "_transfer_to"), recepientAddr), ScriptTransfer(Address(reciver), amount, unit)]
8787 else if ((i.payments[0].assetId == teams))
8888 then [IntegerEntry((toBase58String(caller) + "_transfer"), amount), StringEntry((toBase58String(caller) + "_transfer_to"), recepientAddr), ScriptTransfer(Address(reciver), amount, teams)]
8989 else nil
9090 }
9191
9292

github/deemru/w8io/169f3d6 
57.56 ms