tx · DQqxRf17r3KWP4FoVQXALoZNGi7bkS8hQPsagPmiiesf

3PMbHWvG3Sbcxm6bhpXm7nK9f1MoYBJD6EH:  -0.01400000 Waves

2022.04.11 14:09 [3069155] smart account 3PMbHWvG3Sbcxm6bhpXm7nK9f1MoYBJD6EH > SELF 0.00000000 Waves

{ "type": 13, "id": "DQqxRf17r3KWP4FoVQXALoZNGi7bkS8hQPsagPmiiesf", "fee": 1400000, "feeAssetId": null, "timestamp": 1649675413608, "version": 2, "chainId": 87, "sender": "3PMbHWvG3Sbcxm6bhpXm7nK9f1MoYBJD6EH", "senderPublicKey": "2FDqKTtn54g89cuapzZa78AJQzTTSV66uc4R8wxyTWhr", "proofs": [ "3kdpj3XvuJAjVqsmzpt2X9Nz5KhxAX9qVuCffuBPnozx5pmiy6q3pszw3Jcj5HZ1yF6mvdnBHUdxeA5hJaFtwcRA" ], "script": "base64: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", "height": 3069155, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: J1gvk5k4Nif9pmzQwt8TJrFffBDJ37Y4nDDtEQdbQdtJ Next: none Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = Address(base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57')
55
6-let duckWrapperAddress = Address(base58'3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo')
6+let duckWrapperAddress = Address(base58'3P2SMcPXPsCQ21XuDRhu3YZniPFcYTP6iFH')
77
8-let oracleAddress = Address(base58'3PPfDHC6hNqDMxRArJvJRkYfC8y6S3rSnYb')
8+let oracleAddress = Address(base58'3PMbHWvG3Sbcxm6bhpXm7nK9f1MoYBJD6EH')
99
1010 func verifyNft (nftIdStr) = match getString(nftCreationAddress, (("nft_" + nftIdStr) + "_data")) {
1111 case x: String =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nftCreationAddress = Address(base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57')
55
6-let duckWrapperAddress = Address(base58'3P3pDosq4GCwfJkvq4yqKvvoTwmoqc9qPmo')
6+let duckWrapperAddress = Address(base58'3P2SMcPXPsCQ21XuDRhu3YZniPFcYTP6iFH')
77
8-let oracleAddress = Address(base58'3PPfDHC6hNqDMxRArJvJRkYfC8y6S3rSnYb')
8+let oracleAddress = Address(base58'3PMbHWvG3Sbcxm6bhpXm7nK9f1MoYBJD6EH')
99
1010 func verifyNft (nftIdStr) = match getString(nftCreationAddress, (("nft_" + nftIdStr) + "_data")) {
1111 case x: String =>
1212 true
1313 case _ =>
1414 false
1515 }
1616
1717
1818 @Callable(i)
1919 func sendToGateway (recipient) = {
2020 let pmt = value(i.payments[0])
2121 let nftId = value(pmt.assetId)
2222 let nftIdStr = toBase58String(nftId)
2323 if (!(verifyNft(nftIdStr)))
2424 then throw("wrong NFT attached")
2525 else [StringEntry((("nft_" + nftIdStr) + "_sentTo"), recipient), IntegerEntry((("nft_" + nftIdStr) + "_lockedAt"), height), StringEntry((("nft_" + nftIdStr) + "_lockedBy"), toString(i.caller))]
2626 }
2727
2828
2929
3030 @Callable(i)
3131 func stakeAndSendToGateway (recipient) = {
3232 let pmt = value(i.payments[0])
3333 let originNftId = value(pmt.assetId)
3434 let originNftIdStr = toBase58String(originNftId)
3535 let nftIdStr = match invoke(duckWrapperAddress, "lock", nil, i.payments) {
3636 case x: String =>
3737 x
3838 case _ =>
3939 throw("error while wrapping duck")
4040 }
4141 if ((nftIdStr == nftIdStr))
4242 then if (!(verifyNft(nftIdStr)))
4343 then throw("wrong NFT attached")
4444 else [StringEntry((("nft_" + nftIdStr) + "_sentTo"), recipient), IntegerEntry((("nft_" + nftIdStr) + "_lockedAt"), height), StringEntry((("nft_" + nftIdStr) + "_lockedBy"), toString(i.caller))]
4545 else throw("Strict value is not equal to itself.")
4646 }
4747
4848
4949
5050 @Callable(i)
5151 func sendFromGateway (nftIdStr,recipient) = if ((i.caller != oracleAddress))
5252 then throw("gateway address allowed only")
5353 else [ScriptTransfer(Address(fromBase58String(recipient)), 1, fromBase58String(nftIdStr)), StringEntry((("nft_" + nftIdStr) + "_unlockedTo"), recipient), IntegerEntry((("nft_" + nftIdStr) + "_unlockedAt"), height)]
5454
5555
5656
5757 @Callable(i)
5858 func unstakeAndSendFromGateway (nftIdStr,recipient) = {
5959 let nftId = fromBase58String(nftIdStr)
6060 if ((i.caller != oracleAddress))
6161 then throw("gateway address allowed only")
6262 else {
6363 let originNftIdStr = match invoke(duckWrapperAddress, "unlock", nil, [AttachedPayment(nftId, 1)]) {
6464 case x: String =>
6565 x
6666 case _ =>
6767 throw("error while unstaking duck")
6868 }
6969 if ((originNftIdStr == originNftIdStr))
7070 then [ScriptTransfer(Address(fromBase58String(recipient)), 1, fromBase58String(originNftIdStr)), StringEntry((("nft_" + nftIdStr) + "_unlockedTo"), recipient), IntegerEntry((("nft_" + nftIdStr) + "_unlockedAt"), height)]
7171 else throw("Strict value is not equal to itself.")
7272 }
7373 }
7474
7575
7676 @Verifier(tx)
7777 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7878

github/deemru/w8io/3ef1775 
780.21 ms