tx · Bi2AFdAcb4ZBVJMHJTyxNDsnfQtbiHbKyaBPpewCmSJg

3P2KBLgyKAWUA8zCefafHK3HxLQB7ammDfS:  -0.01000000 Waves

2021.11.24 17:07 [2870253] smart account 3P2KBLgyKAWUA8zCefafHK3HxLQB7ammDfS > SELF 0.00000000 Waves

{ "type": 13, "id": "Bi2AFdAcb4ZBVJMHJTyxNDsnfQtbiHbKyaBPpewCmSJg", "fee": 1000000, "feeAssetId": null, "timestamp": 1637762855276, "version": 2, "chainId": 87, "sender": "3P2KBLgyKAWUA8zCefafHK3HxLQB7ammDfS", "senderPublicKey": "AQM5JR46VkucVkx5RVXDtku22Yf6j1v16ekWmdXYyXMT", "proofs": [ "4pWhQ2VBMpRADLu5N15cmS74VRzpJEsA4fF2r9Seu6TRoDgvwhBR9BguMd4YVZTEBzGJRptGGkufnFccGSGMLgrM" ], "script": "base64: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AAAAAgUAAAAHbmFtZUtleQUAAAAEbmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhzdGF0ZUtleQIAAAAGTE9HR0VECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACnN0YXRlS2V5VHgCAAAABkxPR0dFRAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAlpc3N1ZXJLZXkFAAAABmlzc3VlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAlhc3NldFR4SWQFAAAAB2Fzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAAAxEaXJ0eSBoYWNrZXIAAAABaQEAAAAPcmVsZWFzZU9uTmF0aXZlAAAAAQAAAAR0eElkBAAAAAxhc3NldFR4SWRLZXkJAQAAAAxrZXlBc3NldFR4SWQAAAABBQAAAAR0eElkBAAAAAl0eElkU3RhdGUJAQAAAAxrZXlTdGF0ZVR4SWQAAAABBQAAAAR0eElkBAAAAAdhc3NldElkCQEAAAAMZ2V0RGF0YUJ5S2V5AAAAAQUAAAAMYXNzZXRUeElkS2V5BAAAAA5kZXN0aW5hdGlvbktleQkBAAAACmtleURlc3RORlQAAAABBQAAAAdhc3NldElkBAAAAA1vdGhlclN0YXRlS2V5CQEAAAALa2V5U3RhdGVORlQAAAABBQAAAAdhc3NldElkBAAAAAVzdGF0ZQkBAAAADGdldERhdGFCeUtleQAAAAEFAAAACXR4SWRTdGF0ZQMJAAAAAAAAAgUAAAAFc3RhdGUCAAAABkxPR0dFRAQAAAALZGVzdGluYXRpb24JAQAAAAxnZXREYXRhQnlLZXkAAAABBQAAAA5kZXN0aW5hdGlvbktleQQAAAAOcmVjZWl2ZU5GVEFkZHkJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAtkZXN0aW5hdGlvbgQAAAAJbmF0aXZlS2V5CQEAAAAMa2V5TmF0aXZlTkZUAAAAAQUAAAAHYXNzZXRJZAQAAAAEZGF0YQkBAAAADGdldE9yTWludE5GVAAAAAEFAAAAB2Fzc2V0SWQEAAAABW5mdElkCAUAAAAEZGF0YQAAAAJfMQQAAAAIbWludERhdGEIBQAAAARkYXRhAAAAAl8yBAAAAAhvdGhlcktleQkBAAAAC2tleU90aGVyTkZUAAAAAQUAAAAFbmZ0SWQEAAAAFG5hdGl2ZURlc3RpbmF0aW9uS2V5CQEAAAAKa2V5RGVzdE5GVAAAAAEFAAAABW5mdElkBAAAABFuYXRpdmVTdGF0ZUtleU5GVAkBAAAAC2tleVN0YXRlTkZUAAAAAQUAAAAFbmZ0SWQDCQAAAAAAAAIFAAAABHRoaXMIBQAAAAFpAAAABmNhbGxlcgkABE4AAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACG90aGVyS2V5BQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACW5hdGl2ZUtleQUAAAAFbmZ0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAUbmF0aXZlRGVzdGluYXRpb25LZXkFAAAAC2Rlc3RpbmF0aW9uCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEW5hdGl2ZVN0YXRlS2V5TkZUAgAAAAlDT01QTEVURUQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAANb3RoZXJTdGF0ZUtleQIAAAAJQ09NUExFVEVECQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACXR4SWRTdGF0ZQIAAAAJQ09NUExFVEVECQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADnJlY2VpdmVORlRBZGR5AAAAAAAAAAABCQACWQAAAAEFAAAABW5mdElkBQAAAANuaWwFAAAACG1pbnREYXRhCQAETgAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAIb3RoZXJLZXkFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAJbmF0aXZlS2V5BQAAAAVuZnRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABRuYXRpdmVEZXN0aW5hdGlvbktleQUAAAALZGVzdGluYXRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAARbmF0aXZlU3RhdGVLZXlORlQCAAAACUNPTVBMRVRF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", "height": 2870253, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9vWgmnaVrAGxq63ScUbnKcXooiEnmfsQaxWR9MYpFATS Next: A3JToTJekeTUNdb4ufiGUNZ6qgL11ZDzw65XGSDaDDUv Diff:
OldNewDifferences
110110 else {
111111 let stateKey = keyStateNFT(assetIdToString(pmt.assetId))
112112 let destinationKey = keyDestinationNFT(assetIdToString(pmt.assetId), height)
113-[StringEntry(stateKey, "SEND-TO-OTHER"), StringEntry(destinationKey, destination)]
113+ let txId = toBase58String(i.transactionId)
114+ let txIdState = keyStateTxId(txId)
115+[StringEntry(stateKey, "SEND-TO-OTHER"), StringEntry(txIdState, "SEND-TO-OTHER"), StringEntry(destinationKey, destination)]
114116 }
115117 }
116118
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(assetIdToString(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))
9797 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)
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)
113-[StringEntry(stateKey, "SEND-TO-OTHER"), StringEntry(destinationKey, destination)]
113+ let txId = toBase58String(i.transactionId)
114+ let txIdState = keyStateTxId(txId)
115+[StringEntry(stateKey, "SEND-TO-OTHER"), StringEntry(txIdState, "SEND-TO-OTHER"), StringEntry(destinationKey, destination)]
114116 }
115117 }
116118
117119
118120
119121 @Callable(i)
120122 func StoreDataFinishSendToOther (txId,mintId,nftId,nftIdOther) = if ((i.caller == this))
121123 then {
122124 let txIdState = keyStateTxId(txId)
123125 let stateKey = (nftId + "_state")
124126 let state = getString(this, txIdState)
125127 if (isDefined(state))
126128 then {
127129 let tnKey = keyOtherNFT(nftId)
128130 let linkKey = keyNativeNFT(nftIdOther)
129131 let mintIdKey = (nftId + "_mintId")
130132 [StringEntry(stateKey, "COMPLETED"), StringEntry(txIdState, "COMPLETED"), StringEntry(tnKey, nftIdOther), StringEntry(linkKey, nftId), StringEntry(mintIdKey, mintId)]
131133 }
132134 else throw(("We can't update a non-existing state! " + txIdState))
133135 }
134136 else throw("Dirty hacker!")
135137
136138

github/deemru/w8io/3ef1775 
49.18 ms