tx · AuJiWXH5QcUnri2ns3D7VHN53Ux38gYEg6q5cLku3BF6

3P2KBLgyKAWUA8zCefafHK3HxLQB7ammDfS:  -0.01000000 Waves

2021.11.24 17:12 [2870258] smart account 3P2KBLgyKAWUA8zCefafHK3HxLQB7ammDfS > SELF 0.00000000 Waves

{ "type": 13, "id": "AuJiWXH5QcUnri2ns3D7VHN53Ux38gYEg6q5cLku3BF6", "fee": 1000000, "feeAssetId": null, "timestamp": 1637763225081, "version": 2, "chainId": 87, "sender": "3P2KBLgyKAWUA8zCefafHK3HxLQB7ammDfS", "senderPublicKey": "AQM5JR46VkucVkx5RVXDtku22Yf6j1v16ekWmdXYyXMT", "proofs": [ "4dr2qGSqqa15Lhqc4AZV6ZsqgzqpVBRDea3bPdit4r2679zrfJo993Uinwai4Tpq3Uow7sQH5Fi2ju5YYMbFFv8p" ], "script": "base64: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AAAABG5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAIc3RhdGVLZXkCAAAABkxPR0dFRAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAApzdGF0ZUtleVR4AgAAAAZMT0dHRUQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAJaXNzdWVyS2V5BQAAAAZpc3N1ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAJYXNzZXRUeElkBQAAAAdhc3NldElkBQAAAANuaWwJAAACAAAAAQIAAAAMRGlydHkgaGFja2VyAAAAAWkBAAAAD3JlbGVhc2VPbk5hdGl2ZQAAAAEAAAAEdHhJZAQAAAAMYXNzZXRUeElkS2V5CQEAAAAMa2V5QXNzZXRUeElkAAAAAQUAAAAEdHhJZAQAAAAJdHhJZFN0YXRlCQEAAAAMa2V5U3RhdGVUeElkAAAAAQUAAAAEdHhJZAQAAAAHYXNzZXRJZAkBAAAADGdldERhdGFCeUtleQAAAAEFAAAADGFzc2V0VHhJZEtleQQAAAAOZGVzdGluYXRpb25LZXkJAQAAAAprZXlEZXN0TkZUAAAAAQUAAAAHYXNzZXRJZAQAAAANb3RoZXJTdGF0ZUtleQkBAAAAC2tleVN0YXRlTkZUAAAAAQUAAAAHYXNzZXRJZAQAAAAFc3RhdGUJAQAAAAxnZXREYXRhQnlLZXkAAAABBQAAAAl0eElkU3RhdGUDCQAAAAAAAAIFAAAABXN0YXRlAgAAAAZMT0dHRUQEAAAAC2Rlc3RpbmF0aW9uCQEAAAAMZ2V0RGF0YUJ5S2V5AAAAAQUAAAAOZGVzdGluYXRpb25LZXkEAAAADnJlY2VpdmVORlRBZGR5CQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAALZGVzdGluYXRpb24EAAAACW5hdGl2ZUtleQkBAAAADGtleU5hdGl2ZU5GVAAAAAEFAAAAB2Fzc2V0SWQEAAAABGRhdGEJAQAAAAxnZXRPck1pbnRORlQAAAABBQAAAAdhc3NldElkBAAAAAVuZnRJZAgFAAAABGRhdGEAAAACXzEEAAAACG1pbnREYXRhCAUAAAAEZGF0YQAAAAJfMgQAAAAIb3RoZXJLZXkJAQAAAAtrZXlPdGhlck5GVAAAAAEFAAAABW5mdElkBAAAABRuYXRpdmVEZXN0aW5hdGlvbktleQkBAAAACmtleURlc3RORlQAAAABBQAAAAVuZnRJZAQAAAARbmF0aXZlU3RhdGVLZXlORlQJAQAAAAtrZXlTdGF0ZU5GVAAAAAEFAAAABW5mdElkAwkAAAAAAAACBQAAAAR0aGlzCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAEdGVzdAkABE4AAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACG90aGVyS2V5BQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACW5hdGl2ZUtleQUAAAAFbmZ0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAUbmF0aXZlRGVzdGluYXRpb25LZXkFAAAAC2Rlc3RpbmF0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEW5hdGl2ZVN0YXRlS2V5TkZUAgAAAAlDT01QTEVURUQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAANb3RoZXJTdGF0ZUtleQIAAAAJQ09NUExFVEVECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACXR4SWRTdGF0ZQIAAAAJQ09NUExFVEVECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADnJlY2VpdmVORlRBZGR5AAAAAAAAAAABCQACWQAAAAEFAAAABW5mdElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgAAAAAAATEtAAUAAAAEdW5pdAUAAAADbmlsBQAAAAhtaW50RGF0YQkAAAIAAAABAgAAACFUcmFuc2FjdGlvbiBpcyBhbHJlYWR5IHByb2Nlc3NlZCEAAAABaQEAAAALc2VuZFRvT3RoZXIAAAABAAAAC2Rlc3RpbmF0aW9uBAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAADCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAVSXQgbmVlZHMgdG8gYmUgYW4gTkZUBAAAAAhzdGF0ZUtleQkBAAAAC2tleVN0YXRlTkZUAAAAAQkBAAAAD2Fzc2V0SWRUb1N0cmluZwAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAOZGVzdGluYXRpb25LZXkJAQAAABFrZXlEZXN0aW5hdGlvbk5GVAAAAAIJAQAAAA9hc3NldElkVG9TdHJpbmcAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAABmhlaWdodAQAAAAEdHhJZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAl0eElkU3RhdGUJAQAAAAxrZXlTdGF0ZVR4SWQAAAABBQAAAAR0eElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACHN0YXRlS2V5AgAAAA1TRU5ELVRPLU9USEVSCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACXR4SWRTdGF0ZQIAAAANU0VORC1UTy1PVEhFUgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA5kZXN0aW5hdGlvbktleQUAAAALZGVzdGluYXRpb24FAAAAA25pbAAAAAFpAQAAABpTdG9yZURhdGFGaW5pc2hTZW5kVG9PdGhlcgAAAAQAAAAEdHhJZAAAAAZtaW50SWQAAAAFbmZ0SWQAAAAKbmZ0SWRPdGhlcgMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzBAAAAAl0eElkU3RhdGUJAQAAAAxrZXlTdGF0ZVR4SWQAAAABBQAAAAR0eElkBAAAAAhzdGF0ZUtleQkAASwAAAACBQAAAAVuZnRJZAIAAAAGX3N0YXRlBAAAAAVzdGF0ZQkABB0AAAACBQAAAAR0aGlzBQAAAAl0eElkU3RhdGUDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAFc3RhdGUEAAAABXRuS2V5CQEAAAALa2V5T3RoZXJORlQAAAABBQAAAAVuZnRJZAQAAAAHbGlua0tleQkBAAAADGtleU5hdGl2ZU5GVAAAAAEFAAAACm5mdElkT3RoZXIEAAAACW1pbnRJZEtleQkAASwAAAACBQAAAAVuZnRJZAIAAAAHX21pbnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhzdGF0ZUtleQIAAAAJQ09NUExFVEVECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACXR4SWRTdGF0ZQIAAAAJQ09NUExFVEVECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAABXRuS2V5BQAAAApuZnRJZE90aGVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAB2xpbmtLZXkFAAAABW5mdElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACW1pbnRJZEtleQUAAAAGbWludElkBQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAACZXZSBjYW4ndCB1cGRhdGUgYSBub24tZXhpc3Rpbmcgc3RhdGUhIAUAAAAJdHhJZFN0YXRlCQAAAgAAAAECAAAADURpcnR5IGhhY2tlciEAAAAAAO6H3g==", "height": 2870258, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7K1Dc7qUkAUk755aBGT2cy3SqHFFvY4XeSqCkiBbx9fz Next: 3FGanfXZtV21LzYUS3sGi63xoqZUE8Kdokp7iE45Wt9y Diff:
OldNewDifferences
9494 let nativeDestinationKey = keyDestNFT(nftId)
9595 let nativeStateKeyNFT = keyStateNFT(nftId)
9696 if ((this == i.caller))
97- then ([StringEntry(otherKey, assetId), StringEntry(nativeKey, nftId), StringEntry(nativeDestinationKey, destination), StringEntry(nativeStateKeyNFT, "COMPLETED"), StringEntry(otherStateKey, "COMPLETED"), StringEntry(txIdState, "COMPLETED"), ScriptTransfer(receiveNFTAddy, 1, fromBase58String(nftId))] ++ mintData)
97+ then throw("test")
9898 else ([StringEntry(otherKey, assetId), StringEntry(nativeKey, nftId), StringEntry(nativeDestinationKey, destination), StringEntry(nativeStateKeyNFT, "COMPLETED"), StringEntry(otherStateKey, "COMPLETED"), StringEntry(txIdState, "COMPLETED"), ScriptTransfer(receiveNFTAddy, 1, fromBase58String(nftId)), ScriptTransfer(i.caller, 20000000, unit)] ++ mintData)
9999 }
100100 else throw("Transaction is already processed!")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func keyStateNFT (assetId) = (assetId + "_state")
55
66
77 func keyStateTxId (txId) = (txId + "_state")
88
99
1010 func keyAssetTxId (txId) = (txId + "_asset")
1111
1212
1313 func keyDestNFT (assetId) = (assetId + "_dest")
1414
1515
1616 func keyDescNFT (assetId) = (assetId + "_descr")
1717
1818
1919 func keyNameNFT (assetId) = (assetId + "_name")
2020
2121
2222 func keyIssueNFT (assetId) = (assetId + "_issuer")
2323
2424
2525 func keyOtherNFT (assetId) = (assetId + "_idOther")
2626
2727
2828 func keyNativeNFT (assetId) = (assetId + "_idNative")
2929
3030
3131 func getDataByKey (stateKey) = valueOrErrorMessage(getString(this, stateKey), ("Can't find key " + stateKey))
3232
3333
3434 func assetIdToString (assetId) = toBase58String(value(assetId))
3535
3636
3737 func keyDestinationNFT (assetId,height) = ((assetId + "_") + toString(height))
3838
3939
4040 func getOrMintNFT (assetId) = {
4141 let nativeKey = keyNativeNFT(assetId)
4242 let descKey = keyDescNFT(assetId)
4343 let nameKey = keyNameNFT(assetId)
4444 let description = getDataByKey(descKey)
4545 let name = getDataByKey(nameKey)
4646 if (isDefined(getString(this, nativeKey)))
4747 then $Tuple2(getStringValue(this, nativeKey), nil)
4848 else {
4949 let issueNFT = Issue(name, description, 1, 0, false)
5050 let idNFT = calculateAssetId(issueNFT)
5151 $Tuple2(toBase58String(idNFT), [issueNFT])
5252 }
5353 }
5454
5555
5656 @Callable(i)
5757 func storeDataSendToNative (txId,destination,description,name,assetId,issuer) = if ((i.caller == this))
5858 then {
5959 let stateKey = keyStateNFT(assetId)
6060 let stateKeyTx = keyStateTxId(txId)
6161 let state = getString(this, stateKey)
6262 let destinationKey = keyDestNFT(assetId)
6363 let descKey = keyDescNFT(assetId)
6464 let nameKey = keyNameNFT(assetId)
6565 let issuerKey = keyIssueNFT(assetId)
6666 let assetTxId = keyAssetTxId(txId)
6767 if (isDefined(state))
6868 then if ((getStringValue(this, stateKeyTx) == "COMPLETED"))
6969 then [StringEntry(destinationKey, destination), StringEntry(descKey, description), StringEntry(nameKey, name), StringEntry(stateKey, "LOGGED"), StringEntry(stateKeyTx, "LOGGED"), StringEntry(issuerKey, issuer), StringEntry(assetTxId, assetId)]
7070 else throw(("Don't you dare to temper with data! " + getStringValue(this, stateKey)))
7171 else [StringEntry(destinationKey, destination), StringEntry(descKey, description), StringEntry(nameKey, name), StringEntry(stateKey, "LOGGED"), StringEntry(stateKeyTx, "LOGGED"), StringEntry(issuerKey, issuer), StringEntry(assetTxId, assetId)]
7272 }
7373 else throw("Dirty hacker")
7474
7575
7676
7777 @Callable(i)
7878 func releaseOnNative (txId) = {
7979 let assetTxIdKey = keyAssetTxId(txId)
8080 let txIdState = keyStateTxId(txId)
8181 let assetId = getDataByKey(assetTxIdKey)
8282 let destinationKey = keyDestNFT(assetId)
8383 let otherStateKey = keyStateNFT(assetId)
8484 let state = getDataByKey(txIdState)
8585 if ((state == "LOGGED"))
8686 then {
8787 let destination = getDataByKey(destinationKey)
8888 let receiveNFTAddy = Address(fromBase58String(destination))
8989 let nativeKey = keyNativeNFT(assetId)
9090 let data = getOrMintNFT(assetId)
9191 let nftId = data._1
9292 let mintData = data._2
9393 let otherKey = keyOtherNFT(nftId)
9494 let nativeDestinationKey = keyDestNFT(nftId)
9595 let nativeStateKeyNFT = keyStateNFT(nftId)
9696 if ((this == i.caller))
97- then ([StringEntry(otherKey, assetId), StringEntry(nativeKey, nftId), StringEntry(nativeDestinationKey, destination), StringEntry(nativeStateKeyNFT, "COMPLETED"), StringEntry(otherStateKey, "COMPLETED"), StringEntry(txIdState, "COMPLETED"), ScriptTransfer(receiveNFTAddy, 1, fromBase58String(nftId))] ++ mintData)
97+ then throw("test")
9898 else ([StringEntry(otherKey, assetId), StringEntry(nativeKey, nftId), StringEntry(nativeDestinationKey, destination), StringEntry(nativeStateKeyNFT, "COMPLETED"), StringEntry(otherStateKey, "COMPLETED"), StringEntry(txIdState, "COMPLETED"), ScriptTransfer(receiveNFTAddy, 1, fromBase58String(nftId)), ScriptTransfer(i.caller, 20000000, unit)] ++ mintData)
9999 }
100100 else throw("Transaction is already processed!")
101101 }
102102
103103
104104
105105 @Callable(i)
106106 func sendToOther (destination) = {
107107 let pmt = value(i.payments[0])
108108 if (!(isDefined(pmt.assetId)))
109109 then throw("It needs to be an NFT")
110110 else {
111111 let stateKey = keyStateNFT(assetIdToString(pmt.assetId))
112112 let destinationKey = keyDestinationNFT(assetIdToString(pmt.assetId), height)
113113 let txId = toBase58String(i.transactionId)
114114 let txIdState = keyStateTxId(txId)
115115 [StringEntry(stateKey, "SEND-TO-OTHER"), StringEntry(txIdState, "SEND-TO-OTHER"), StringEntry(destinationKey, destination)]
116116 }
117117 }
118118
119119
120120
121121 @Callable(i)
122122 func StoreDataFinishSendToOther (txId,mintId,nftId,nftIdOther) = if ((i.caller == this))
123123 then {
124124 let txIdState = keyStateTxId(txId)
125125 let stateKey = (nftId + "_state")
126126 let state = getString(this, txIdState)
127127 if (isDefined(state))
128128 then {
129129 let tnKey = keyOtherNFT(nftId)
130130 let linkKey = keyNativeNFT(nftIdOther)
131131 let mintIdKey = (nftId + "_mintId")
132132 [StringEntry(stateKey, "COMPLETED"), StringEntry(txIdState, "COMPLETED"), StringEntry(tnKey, nftIdOther), StringEntry(linkKey, nftId), StringEntry(mintIdKey, mintId)]
133133 }
134134 else throw(("We can't update a non-existing state! " + txIdState))
135135 }
136136 else throw("Dirty hacker!")
137137
138138

github/deemru/w8io/3ef1775 
37.69 ms