2022.12.04 20:36 [3411373] smart account 3PK6P9JZN5dMHv1iftfs5EnpJGhq6rTz5gn > SELF 0.00000000 Waves
{ "type": 13, "id": "D5xoi4inLAf2X6MwZnVvwy71unkYB3NaA8tGiizj9MNX", "fee": 1000000, "feeAssetId": null, "timestamp": 1670175390796, "version": 2, "chainId": 87, "sender": "3PK6P9JZN5dMHv1iftfs5EnpJGhq6rTz5gn", "senderPublicKey": "wihNXjQ6qsyuUn4fQ8syapGBJLXYRqnyVMUMfo8Ko28", "proofs": [ "2QtaKEi4bVt1pQu8pWGTHrR5MrPxxCzcU3Qmzgs7Q3LGjcgAZAAAAWrntSx8ysamfvht9j5YDmGErKEzhaYURuYh" ], "script": "base64:BgIICAISBAoCBAQEAApVU0ROX0FTU0VUASC2JinDBPXOU5GkDkt1JC9kjFGx+t+vVCm9SNIdKrKq0QALdmVzdGluZ0RhcHAJAQdBZGRyZXNzAQEaAVd1Et2Tgg9b3iV2FTnLSdUfUygJxOhxXicADGFkbWluQWRkcmVzcwkBB0FkZHJlc3MBARoBVxKIOQ1Xdg411ANBy2CqJPBIKhf45KVAVwADZmVlAA8BAWkBAnZmAgV3aGFsZQdyZWd1bGFyAwkBAiE9AggFAWkGY2FsbGVyBQxhZG1pbkFkZHJlc3MJAAIBAhJvbmx5IGFkbWluIGFsbG93ZWQEEHdpdGhkcmF3YWxBbW91bnQJAPwHBAULdmVzdGluZ0RhcHACFXdpdGhkcmF3VmVzdGVkQWxsVVNETgkAzAgCBQV3aGFsZQkAzAgCBQdyZWd1bGFyBQNuaWwFA25pbAMJAAACBRB3aXRoZHJhd2FsQW1vdW50BRB3aXRoZHJhd2FsQW1vdW50BAckbWF0Y2gwBRB3aXRoZHJhd2FsQW1vdW50AwkAAQIFByRtYXRjaDACA0ludAQGYW1vdW50BQckbWF0Y2gwBAlmZWVBbW91bnQJAGsDBQZhbW91bnQFA2ZlZQBkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFDGFkbWluQWRkcmVzcwUJZmVlQW1vdW50BQpVU0ROX0FTU0VUBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AhfD2cw==", "height": 3411373, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: qVtKymUKKxbbD5CtuvCSzeG3WSnrzXfWfoBKgkrfGAX Next: vafpmC9B7TzUaE2GXEXseNfDuuZQ2hooJG2EkdkmNSF Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let | |
4 | + | let USDN_ASSET = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p' | |
5 | 5 | ||
6 | - | let | |
6 | + | let vestingDapp = Address(base58'3PCbvPVQfSvVu88ip8Fm5YjwJhjEYk1Txhk') | |
7 | 7 | ||
8 | - | let usdcLp = base58'FSRHtSyXRXQjzQLRtmaqFpBDDCNjY8PU8KNtwoGXVBmr' | |
8 | + | let adminAddress = Address(base58'3P3ct5dTqVmei17Y55rnC6rxqiZhtQmdc9U') | |
9 | + | ||
10 | + | let fee = 15 | |
9 | 11 | ||
10 | 12 | @Callable(i) | |
11 | - | func | |
12 | - | then throw(" | |
13 | + | func vf (whale,regular) = if ((i.caller != adminAddress)) | |
14 | + | then throw("only admin allowed") | |
13 | 15 | else { | |
14 | - | let lpBalance = assetBalance(this, usdcLp) | |
15 | - | let truncatedLpBalance = if ((337229554 > lpBalance)) | |
16 | - | then lpBalance | |
17 | - | else 337229554 | |
18 | - | let call = invoke(viresMain, "replenishWithAtoken", nil, [AttachedPayment(usdcLp, truncatedLpBalance)]) | |
19 | - | if ((call == call)) | |
20 | - | then nil | |
16 | + | let withdrawalAmount = invoke(vestingDapp, "withdrawVestedAllUSDN", [whale, regular], nil) | |
17 | + | if ((withdrawalAmount == withdrawalAmount)) | |
18 | + | then match withdrawalAmount { | |
19 | + | case amount: Int => | |
20 | + | let feeAmount = fraction(amount, fee, 100) | |
21 | + | [ScriptTransfer(adminAddress, feeAmount, USDN_ASSET)] | |
22 | + | case _ => | |
23 | + | throw("Strict value is not equal to itself.") | |
24 | + | } | |
21 | 25 | else throw("Strict value is not equal to itself.") | |
22 | 26 | } | |
23 | 27 | ||
24 | - | ||
25 | - | ||
26 | - | @Callable(i) | |
27 | - | func b () = if ((i.caller != this)) | |
28 | - | then throw("Access Denied") | |
29 | - | else { | |
30 | - | let call = invoke(viresVesting, "convertToUSDN", nil, nil) | |
31 | - | if ((call == call)) | |
32 | - | then nil | |
33 | - | else throw("Strict value is not equal to itself.") | |
34 | - | } | |
35 | - | ||
36 | - | ||
37 | - | ||
38 | - | @Callable(i) | |
39 | - | func claim_usdn () = if ((i.caller != this)) | |
40 | - | then throw("Access Denied") | |
41 | - | else { | |
42 | - | let call = invoke(viresVesting, "withdrawVestedAllUSDN", [false, true], nil) | |
43 | - | if ((call == call)) | |
44 | - | then nil | |
45 | - | else throw("Strict value is not equal to itself.") | |
46 | - | } | |
47 | - | ||
48 | - | ||
49 | - | @Verifier(tx) | |
50 | - | func verify () = match tx { | |
51 | - | case inv: InvokeScriptTransaction => | |
52 | - | if ((addressFromRecipient(inv.dApp) == this)) | |
53 | - | then true | |
54 | - | else sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
55 | - | case _ => | |
56 | - | sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
57 | - | } | |
58 | 28 |
github/deemru/w8io/786bc32 27.41 ms ◑