tx · 32TDuEcaFms6Ws9fERfW2Rjbav8qXVeJccSGHEjyy9bB 3NAfrN5xp6G6o34pzEhDwKDjz37NUaEpi8E: -0.00300000 Waves 2024.11.13 00:14 [3368728] smart account 3NAfrN5xp6G6o34pzEhDwKDjz37NUaEpi8E > SELF 0.00000000 Waves
{ "type": 13, "id": "32TDuEcaFms6Ws9fERfW2Rjbav8qXVeJccSGHEjyy9bB", "fee": 300000, "feeAssetId": null, "timestamp": 1731446124621, "version": 1, "sender": "3NAfrN5xp6G6o34pzEhDwKDjz37NUaEpi8E", "senderPublicKey": "4Hyg7NjV4cswejcnGeMvk6x68P2RLt9Y1ontHkWtTcEQ", "proofs": [ "4iXhhzTMPN3wgG3N9om223z2nvKtc4kyHu5kZ9FTVL5sQJKiC2h1VvYVxf9k867ztPz4bTQVdTXRTNXzVpDQEL1h" ], "script": "base64:CAIQCAISABIFCgMICAESAwoBCAADAWkBDWxpc3RBbGxBc3NldHMABAt3YXZlc0Ftb3VudAgJAO8HAQUEdGhpcwdyZWd1bGFyBA9zcGVjaWZpY0Fzc2V0SWQJANkEAQIsRExORVdOcDg0d0p1UE1nS2sxaFFHTEh4Z29ybW91a0pKTmpGUm9WNW4xajYEDGFzc2V0RGV0YWlscwQHJG1hdGNoMAkA7AcBBQ9zcGVjaWZpY0Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEAWEFByRtYXRjaDAJAJQKAggFAWEEbmFtZQgFAWEIZGVjaW1hbHMJAAIBAhlBc3NldCBiaWxnaXNpIGJ1bHVuYW1hZMSxBBRzcGVjaWZpY0Fzc2V0QmFsYW5jZQkA8AcCBQR0aGlzBQ9zcGVjaWZpY0Fzc2V0SWQEBnJlc3VsdAkAzAgCCQEMSW50ZWdlckVudHJ5AgINd2F2ZXNfYmFsYW5jZQULd2F2ZXNBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgIIYXNzZXRfaWQCLERMTkVXTnA4NHdKdVBNZ0trMWhRR0xIeGdvcm1vdWtKSk5qRlJvVjVuMWo2CQDMCAIJAQtTdHJpbmdFbnRyeQICCmFzc2V0X25hbWUIBQxhc3NldERldGFpbHMCXzEJAMwIAgkBDEludGVnZXJFbnRyeQICDWFzc2V0X2JhbGFuY2UFFHNwZWNpZmljQXNzZXRCYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg5hc3NldF9kZWNpbWFscwgFDGFzc2V0RGV0YWlscwJfMgUDbmlsCQCUCgIFBnJlc3VsdAUEdW5pdAFpAQ10cmFuc2ZlclRva2VuAwxyZWNpcGllbnRTdHIKYXNzZXRJZFN0cgZhbW91bnQECXJlY2lwaWVudAkBEUBleHRyTmF0aXZlKDEwNjIpAQUMcmVjaXBpZW50U3RyAwkAAAIFCmFzc2V0SWRTdHICBVdBVkVTBA5jdXJyZW50QmFsYW5jZQgJAO8HAQUEdGhpcwdyZWd1bGFyAwkAZwIFDmN1cnJlbnRCYWxhbmNlBQZhbW91bnQECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDBQlyZWNpcGllbnQFBmFtb3VudAUEdW5pdAQGdHhEYXRhCQDMCAIJAQtCaW5hcnlFbnRyeQICEGxhc3RUcmFuc2ZlclR4SWQIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgkBC1N0cmluZ0VudHJ5AgINbGFzdFJlY2lwaWVudAUMcmVjaXBpZW50U3RyCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgpsYXN0QW1vdW50BQZhbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgIJbGFzdEFzc2V0AgVXQVZFUwUDbmlsCQCUCgIJAM0IAgUGdHhEYXRhBQh0cmFuc2ZlcgUEdW5pdAkAAgECF1lldGVyc2l6IFdBVkVTIGJha2l5ZXNpBAdhc3NldElkCQDZBAEFCmFzc2V0SWRTdHIEDmN1cnJlbnRCYWxhbmNlCQDwBwIFBHRoaXMFB2Fzc2V0SWQDCQBnAgUOY3VycmVudEJhbGFuY2UFBmFtb3VudAQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMFCXJlY2lwaWVudAUGYW1vdW50BQdhc3NldElkBAZ0eERhdGEJAMwIAgkBC0JpbmFyeUVudHJ5AgIQbGFzdFRyYW5zZmVyVHhJZAgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCCQELU3RyaW5nRW50cnkCAg1sYXN0UmVjaXBpZW50BQxyZWNpcGllbnRTdHIJAMwIAgkBDEludGVnZXJFbnRyeQICCmxhc3RBbW91bnQFBmFtb3VudAkAzAgCCQELU3RyaW5nRW50cnkCAglsYXN0QXNzZXQFCmFzc2V0SWRTdHIFA25pbAkAlAoCCQDNCAIFBnR4RGF0YQUIdHJhbnNmZXIFBHVuaXQJAAIBAhdZZXRlcnNpeiB0b2tlbiBiYWtpeWVzaQFpAQpnZXRCYWxhbmNlAQphc3NldElkU3RyAwkAAAIFCmFzc2V0SWRTdHICBVdBVkVTBAdiYWxhbmNlCAkA7wcBBQR0aGlzB3JlZ3VsYXIJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCAgxxdWVyaWVkQXNzZXQCBVdBVkVTCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdiYWxhbmNlBQdiYWxhbmNlBQNuaWwFB2JhbGFuY2UEB2Fzc2V0SWQJANkEAQUKYXNzZXRJZFN0cgQHYmFsYW5jZQkA8AcCBQR0aGlzBQdhc3NldElkBAxhc3NldERldGFpbHMEByRtYXRjaDAJAOwHAQUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgVBc3NldAQBYQUHJG1hdGNoMAkAlAoCCAUBYQRuYW1lCAUBYQhkZWNpbWFscwkAAgECGUFzc2V0IGJpbGdpc2kgYnVsdW5hbWFkxLEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCAgxxdWVyaWVkQXNzZXQFCmFzc2V0SWRTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgIJYXNzZXROYW1lCAUMYXNzZXREZXRhaWxzAl8xCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgdiYWxhbmNlBQdiYWxhbmNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAghkZWNpbWFscwgFDGFzc2V0RGV0YWlscwJfMgUDbmlsBQdiYWxhbmNlAQJ0eAEGdmVyaWZ5AAQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24GCQDEEwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5aHfM+g==", "chainId": 84, "height": 3368728, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E3Nz8TkeiFediEXxoCr1UTQN64v2Y5UwxW3oazLfUNbx Next: none Diff:
Old | New | Differences | |
---|---|---|---|
7 | 7 | func listAllAssets () = { | |
8 | 8 | let wavesAmount = wavesBalance(this).regular | |
9 | 9 | let specificAssetId = fromBase58String("DLNEWNp84wJuPMgKk1hQGLHxgormoukJJNjFRoV5n1j6") | |
10 | - | let specificAssetBalance = assetBalance(this, specificAssetId) | |
11 | 10 | let assetDetails = match assetInfo(specificAssetId) { | |
12 | 11 | case a: Asset => | |
13 | 12 | $Tuple2(a.name, a.decimals) | |
14 | 13 | case _ => | |
15 | 14 | throw("Asset bilgisi bulunamadı") | |
16 | 15 | } | |
16 | + | let specificAssetBalance = assetBalance(this, specificAssetId) | |
17 | 17 | let result = [IntegerEntry("waves_balance", wavesAmount), StringEntry("asset_id", "DLNEWNp84wJuPMgKk1hQGLHxgormoukJJNjFRoV5n1j6"), StringEntry("asset_name", assetDetails._1), IntegerEntry("asset_balance", specificAssetBalance), IntegerEntry("asset_decimals", assetDetails._2)] | |
18 | 18 | $Tuple2(result, unit) | |
19 | 19 | } |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 8 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func listAllAssets () = { | |
8 | 8 | let wavesAmount = wavesBalance(this).regular | |
9 | 9 | let specificAssetId = fromBase58String("DLNEWNp84wJuPMgKk1hQGLHxgormoukJJNjFRoV5n1j6") | |
10 | - | let specificAssetBalance = assetBalance(this, specificAssetId) | |
11 | 10 | let assetDetails = match assetInfo(specificAssetId) { | |
12 | 11 | case a: Asset => | |
13 | 12 | $Tuple2(a.name, a.decimals) | |
14 | 13 | case _ => | |
15 | 14 | throw("Asset bilgisi bulunamadı") | |
16 | 15 | } | |
16 | + | let specificAssetBalance = assetBalance(this, specificAssetId) | |
17 | 17 | let result = [IntegerEntry("waves_balance", wavesAmount), StringEntry("asset_id", "DLNEWNp84wJuPMgKk1hQGLHxgormoukJJNjFRoV5n1j6"), StringEntry("asset_name", assetDetails._1), IntegerEntry("asset_balance", specificAssetBalance), IntegerEntry("asset_decimals", assetDetails._2)] | |
18 | 18 | $Tuple2(result, unit) | |
19 | 19 | } | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | ||
23 | 23 | @Callable(i) | |
24 | 24 | func transferToken (recipientStr,assetIdStr,amount) = { | |
25 | 25 | let recipient = addressFromStringValue(recipientStr) | |
26 | 26 | if ((assetIdStr == "WAVES")) | |
27 | 27 | then { | |
28 | 28 | let currentBalance = wavesBalance(this).regular | |
29 | 29 | if ((currentBalance >= amount)) | |
30 | 30 | then { | |
31 | 31 | let transfer = ScriptTransfer(recipient, amount, unit) | |
32 | 32 | let txData = [BinaryEntry("lastTransferTxId", i.transactionId), StringEntry("lastRecipient", recipientStr), IntegerEntry("lastAmount", amount), StringEntry("lastAsset", "WAVES")] | |
33 | 33 | $Tuple2((txData :+ transfer), unit) | |
34 | 34 | } | |
35 | 35 | else throw("Yetersiz WAVES bakiyesi") | |
36 | 36 | } | |
37 | 37 | else { | |
38 | 38 | let assetId = fromBase58String(assetIdStr) | |
39 | 39 | let currentBalance = assetBalance(this, assetId) | |
40 | 40 | if ((currentBalance >= amount)) | |
41 | 41 | then { | |
42 | 42 | let transfer = ScriptTransfer(recipient, amount, assetId) | |
43 | 43 | let txData = [BinaryEntry("lastTransferTxId", i.transactionId), StringEntry("lastRecipient", recipientStr), IntegerEntry("lastAmount", amount), StringEntry("lastAsset", assetIdStr)] | |
44 | 44 | $Tuple2((txData :+ transfer), unit) | |
45 | 45 | } | |
46 | 46 | else throw("Yetersiz token bakiyesi") | |
47 | 47 | } | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | ||
52 | 52 | @Callable(i) | |
53 | 53 | func getBalance (assetIdStr) = if ((assetIdStr == "WAVES")) | |
54 | 54 | then { | |
55 | 55 | let balance = wavesBalance(this).regular | |
56 | 56 | $Tuple2([StringEntry("queriedAsset", "WAVES"), IntegerEntry("balance", balance)], balance) | |
57 | 57 | } | |
58 | 58 | else { | |
59 | 59 | let assetId = fromBase58String(assetIdStr) | |
60 | 60 | let balance = assetBalance(this, assetId) | |
61 | 61 | let assetDetails = match assetInfo(assetId) { | |
62 | 62 | case a: Asset => | |
63 | 63 | $Tuple2(a.name, a.decimals) | |
64 | 64 | case _ => | |
65 | 65 | throw("Asset bilgisi bulunamadı") | |
66 | 66 | } | |
67 | 67 | $Tuple2([StringEntry("queriedAsset", assetIdStr), StringEntry("assetName", assetDetails._1), IntegerEntry("balance", balance), IntegerEntry("decimals", assetDetails._2)], balance) | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | @Verifier(tx) | |
72 | 72 | func verify () = match tx { | |
73 | 73 | case _: InvokeScriptTransaction => | |
74 | 74 | true | |
75 | 75 | case _ => | |
76 | 76 | sigVerify_8Kb(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
77 | 77 | } | |
78 | 78 |
github/deemru/w8io/169f3d6 21.92 ms ◑![]()