tx · Ci37k1851dZBsY6vEdYTjaCadpj5ScN9xLueReteCgXk 3PPfDHC6hNqDMxRArJvJRkYfC8y6S3rSnYb: -0.01400000 Waves 2022.02.14 19:10 [2988596] smart account 3PPfDHC6hNqDMxRArJvJRkYfC8y6S3rSnYb > SELF 0.00000000 Waves
{ "type": 13, "id": "Ci37k1851dZBsY6vEdYTjaCadpj5ScN9xLueReteCgXk", "fee": 1400000, "feeAssetId": null, "timestamp": 1644855083174, "version": 2, "chainId": 87, "sender": "3PPfDHC6hNqDMxRArJvJRkYfC8y6S3rSnYb", "senderPublicKey": "4FaPZLDv7cbxuVqPY33ZvAmEhjJBRdYxUxrnBLEoZ6WH", "proofs": [ "3tZKNEj3fuAbzTZeWjjAiLPeizjwPAXZ4jYfdw1gjQYC94KhwCD7pc2GGCcNquwwy4e6weWikiji4AF92TXnRy4o" ], "script": "base64:AAIFAAAAAAAAAA0IAhIDCgEIEgQKAggIAAAAAwAAAAASbmZ0Q3JlYXRpb25BZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXRkeg0dLB5XqqDtLD9Tumwl0uvsvI4tRyAAAAAA1vcmFjbGVBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFX7luY5v8F+sqqIkmZYWyEqUrU8OK/iDp0AQAAAAl2ZXJpZnlOZnQAAAABAAAACG5mdElkU3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAEm5mdENyZWF0aW9uQWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAIbmZ0SWRTdHICAAAABV9kYXRhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXgFAAAAByRtYXRjaDAGBwAAAAIAAAABaQEAAAANc2VuZFRvR2F0ZXdheQAAAAEAAAAJcmVjaXBpZW50BAAAAANwbXQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAABW5mdElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAACG5mdElkU3RyCQACWAAAAAEFAAAABW5mdElkAwkBAAAAASEAAAABCQEAAAAJdmVyaWZ5TmZ0AAAAAQUAAAAIbmZ0SWRTdHIJAAACAAAAAQIAAAASd3JvbmcgTkZUIGF0dGFjaGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZhc3NldF8FAAAACG5mdElkU3RyAgAAAAdfc2VudFRvBQAAAAlyZWNpcGllbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZhc3NldF8FAAAACG5mdElkU3RyAgAAAAlfbG9ja2VkQXQFAAAABmhlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGYXNzZXRfBQAAAAhuZnRJZFN0cgIAAAAJX2xvY2tlZEJ5CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAADbmlsAAAAAWkBAAAAD3NlbmRGcm9tR2F0ZXdheQAAAAIAAAAIbmZ0SWRTdHIAAAAJcmVjaXBpZW50AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAA1vcmFjbGVBZGRyZXNzCQAAAgAAAAECAAAAHGdhdGV3YXkgYWRkcmVzcyBhbGxvd2VkIG9ubHkJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAACXJlY2lwaWVudAAAAAAAAAAAAQkAAlkAAAABBQAAAAhuZnRJZFN0cgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGYXNzZXRfBQAAAAhuZnRJZFN0cgIAAAALX3VubG9ja2VkVG8FAAAACXJlY2lwaWVudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAABmFzc2V0XwUAAAAIbmZ0SWRTdHICAAAAC191bmxvY2tlZEF0BQAAAAZoZWlnaHQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V58v98pg==", "height": 2988596, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: H4sxdivo4e7WdM2JC7KUUC91rwZdaA5jG4PEJ4WDSEiS Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let nftCreationAddress = Address(base58'3P8LVqVKhTViMJau96KNir6FhHr4WnfoW57') | |
5 | + | ||
6 | + | let oracleAddress = Address(base58'3PPfDHC6hNqDMxRArJvJRkYfC8y6S3rSnYb') | |
7 | + | ||
8 | + | func verifyNft (nftIdStr) = match getString(nftCreationAddress, (("asset_" + nftIdStr) + "_data")) { | |
9 | + | case x: String => | |
10 | + | true | |
11 | + | case _ => | |
12 | + | false | |
13 | + | } | |
14 | + | ||
15 | + | ||
16 | + | @Callable(i) | |
17 | + | func sendToGateway (recipient) = { | |
18 | + | let pmt = value(i.payments[0]) | |
19 | + | let nftId = value(pmt.assetId) | |
20 | + | let nftIdStr = toBase58String(nftId) | |
21 | + | if (!(verifyNft(nftIdStr))) | |
22 | + | then throw("wrong NFT attached") | |
23 | + | else [StringEntry((("asset_" + nftIdStr) + "_sentTo"), recipient), IntegerEntry((("asset_" + nftIdStr) + "_lockedAt"), height), StringEntry((("asset_" + nftIdStr) + "_lockedBy"), toString(i.caller))] | |
24 | + | } | |
25 | + | ||
26 | + | ||
27 | + | ||
28 | + | @Callable(i) | |
29 | + | func sendFromGateway (nftIdStr,recipient) = if ((i.caller != oracleAddress)) | |
30 | + | then throw("gateway address allowed only") | |
31 | + | else [ScriptTransfer(Address(fromBase58String(recipient)), 1, fromBase58String(nftIdStr)), StringEntry((("asset_" + nftIdStr) + "_unlockedTo"), recipient), IntegerEntry((("asset_" + nftIdStr) + "_unlockedAt"), height)] | |
32 | + | ||
33 | + | ||
34 | + | @Verifier(tx) | |
35 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
36 | + |
github/deemru/w8io/3ef1775 21.18 ms ◑