tx · 3tetNDAh839p3eR1YTtkQCmHF4BuDBCrETDFFhYTY9Gp 3MpWdTGf7g4WqgCF16vRCm47r3jqWR4x3rH: -0.01000000 Waves 2023.02.27 15:30 [2468123] smart account 3MpWdTGf7g4WqgCF16vRCm47r3jqWR4x3rH > SELF 0.00000000 Waves
{ "type": 13, "id": "3tetNDAh839p3eR1YTtkQCmHF4BuDBCrETDFFhYTY9Gp", "fee": 1000000, "feeAssetId": null, "timestamp": 1677501045603, "version": 2, "chainId": 84, "sender": "3MpWdTGf7g4WqgCF16vRCm47r3jqWR4x3rH", "senderPublicKey": "E1AisEe56YET9Mh4nmc7caxvzk8vBN6W6Er2y7XoyLHt", "proofs": [ "1nCJRjX5EUXYcE2nvNbQuNEUT8iqUdEF2j5BhgEv8kUGSdA4wkZBnKj6XQCo3T4bLnFFK8uniKPi5WxTskGKvE1" ], "script": "base64:AAIFAAAAAAAAAA4IAhIECgICBBIECgICAQAAAAEAAAAAC3VzZHRBc3NldElkAQAAABrc3ft4t21aOFLfUUYe+7YekYut4XXWLnwG/gAAAAIAAAABaQEAAAAHZGVwb3NpdAAAAAIAAAAHYWRkcmVzcwAAAAxpc0NvbGxhdGVyYWwDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAGW11c3QgY29udGFpbiB0d28gcGF5bWVudHMEAAAAByRtYXRjaDAJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0F0dGFjaGVkUGF5bWVudAQAAAAHcGF5bWVudAUAAAAHJG1hdGNoMAMDCQAAAAAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAC3VzZHRBc3NldElkCQAAZgAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAAAAAAAAAAAAAcEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHJG1hdGNoMQkABB8AAAABBQAAAA1jYWxsZXJBZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAANJbnQEAAAABmFtb3VudAUAAAAHJG1hdGNoMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANY2FsbGVyQWRkcmVzcwkAAGQAAAACBQAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1jYWxsZXJBZGRyZXNzCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAA25pbAkAAAIAAAABAgAAACNXcm9uZyBhc3NldCByZWNlaXZlZCBvciB6ZXJvIGFtb3VudAkAAAIAAAABAgAAAB1FeHBlY3RlZCBBdHRhY2hlZFBheW1lbnQgdHlwZQAAAAFpAQAAAAl3aXRoZHJhdzIAAAACAAAAB2FkZHJlc3MAAAAGYW1vdW50BAAAAA1jYWxsZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAByRtYXRjaDAJAAQfAAAAAQUAAAANY2FsbGVyQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAA1leGlzdGVkQW1vdW50BQAAAAckbWF0Y2gwAwkAAGYAAAACBQAAAA1leGlzdGVkQW1vdW50BQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWNhbGxlckFkZHJlc3MJAABlAAAAAgUAAAANZXhpc3RlZEFtb3VudAUAAAAGYW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAGYW1vdW50BQAAAAt1c2R0QXNzZXRJZAUAAAADbmlsAwkAAAAAAAACBQAAAA1leGlzdGVkQW1vdW50BQAAAAZhbW91bnQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAANY2FsbGVyQWRkcmVzcwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAALdXNkdEFzc2V0SWQFAAAAA25pbAkAAAIAAAABAgAAAChFeGlzdGVkIGFtb3VudCBpcyBzbWFsbGVyIHRoYW4gcmVxdWVzdGVkCQAAAgAAAAECAAAADlVzZXIgbm90IGZvdW5kAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkssbsR", "height": 2468123, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 6f6NCBiFwq5oJuTvU1UVJjx4cKd9eqBQyUwQsM4guQq9 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let usdtAssetId = base58'7mGJzFEKeMzg5xNbvmFEzNq5KShSf2cE8LQM' | |
5 | + | ||
6 | + | @Callable(i) | |
7 | + | func deposit (address,isCollateral) = if ((size(i.payments) != 1)) | |
8 | + | then throw("must contain two payments") | |
9 | + | else match i.payments[0] { | |
10 | + | case payment: AttachedPayment => | |
11 | + | if (if ((payment.assetId == usdtAssetId)) | |
12 | + | then (payment.amount > 0) | |
13 | + | else false) | |
14 | + | then { | |
15 | + | let callerAddress = toBase58String(i.caller.bytes) | |
16 | + | match getInteger(callerAddress) { | |
17 | + | case amount: Int => | |
18 | + | [IntegerEntry(callerAddress, (amount + payment.amount))] | |
19 | + | case _ => | |
20 | + | [IntegerEntry(callerAddress, payment.amount)] | |
21 | + | } | |
22 | + | } | |
23 | + | else throw("Wrong asset received or zero amount") | |
24 | + | case _ => | |
25 | + | throw("Expected AttachedPayment type") | |
26 | + | } | |
27 | + | ||
28 | + | ||
29 | + | ||
30 | + | @Callable(i) | |
31 | + | func withdraw2 (address,amount) = { | |
32 | + | let callerAddress = toBase58String(i.caller.bytes) | |
33 | + | match getInteger(callerAddress) { | |
34 | + | case existedAmount: Int => | |
35 | + | if ((existedAmount > amount)) | |
36 | + | then [IntegerEntry(callerAddress, (existedAmount - amount)), ScriptTransfer(i.caller, amount, usdtAssetId)] | |
37 | + | else if ((existedAmount == amount)) | |
38 | + | then [DeleteEntry(callerAddress), ScriptTransfer(i.caller, amount, usdtAssetId)] | |
39 | + | else throw("Existed amount is smaller than requested") | |
40 | + | case _ => | |
41 | + | throw("User not found") | |
42 | + | } | |
43 | + | } | |
44 | + | ||
45 | + | ||
46 | + | @Verifier(tx) | |
47 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
48 | + |
github/deemru/w8io/169f3d6 73.82 ms ◑![]()