tx · EHkj9pVrAtVqNTMsEBvJM8ob5LSAF1VjcdaFgpLqoZ2h

3MzgHMybYexKdJKAxYgnPxUX9X51ExrUYaf:  -0.03200000 Waves

2022.05.23 19:54 [2064597] smart account 3MzgHMybYexKdJKAxYgnPxUX9X51ExrUYaf > SELF 0.00000000 Waves

{ "type": 13, "id": "EHkj9pVrAtVqNTMsEBvJM8ob5LSAF1VjcdaFgpLqoZ2h", "fee": 3200000, "feeAssetId": null, "timestamp": 1653324918724, "version": 2, "chainId": 84, "sender": "3MzgHMybYexKdJKAxYgnPxUX9X51ExrUYaf", "senderPublicKey": "B63jSUR3s1MvRQ8dPLcqEXyS7iv4ZmzGaoiWP6rHviqz", "proofs": [ "613mmaTDdmXDVQ2sWNA1d4Wr6wTsMF7VYqbcYWU4Sv3bnj6PeG9H2FZe3TVhaAbbhmJj7eLcwz1bQaVppHuM5qgL" ], "script": "base64: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", "height": 2064597, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let k_insurance = "k_insurance"
5+
6+let k_whitelistt = "k_whitelist"
7+
8+let ADMIN_ADDRESS = Address(base58'3My3DAyGv3d3vkSGRVKpY3AbrnZjgRijMCJ')
9+
10+let ADMIN_PUBLIC_KEY = base58'F3EchjoUmhrwXapx5en4isAYVMHECvwSqyMPkSSUcskX'
11+
12+let USDN = base58'HezsdQuRDtzksAYUy97gfhKy7Z1NW2uXYSHA3bgqenNZ'
13+
14+let USDN_STAKING = Address(base58'3N9LkJahTMx41wGhSxLS42prCZtRCp4dhTs')
15+
16+func toCompositeKey (_key,_address) = ((_key + "_") + _address)
17+
18+
19+func insurance () = valueOrElse(getInteger(this, k_insurance), 0)
20+
21+
22+func isWhitelist (_address) = valueOrElse(getBoolean(this, toCompositeKey(k_whitelistt, _address)), false)
23+
24+
25+func updateInsurance (i) = [IntegerEntry(k_insurance, i)]
26+
27+
28+@Callable(i)
29+func addWhitelist (_addresss) = if ((i.caller != ADMIN_ADDRESS))
30+ then throw("Invalid addWhitelist params")
31+ else [BooleanEntry(toCompositeKey(k_whitelistt, _addresss), true)]
32+
33+
34+
35+@Callable(i)
36+func removeWhitelist (_addresss) = if ((i.caller != ADMIN_ADDRESS))
37+ then throw("Invalid addWhitelist params")
38+ else [BooleanEntry(toCompositeKey(k_whitelistt, _addresss), false)]
39+
40+
41+
42+@Callable(i)
43+func withdraw (_amount) = if (if (!(isWhitelist(toString(i.caller))))
44+ then true
45+ else (_amount > insurance()))
46+ then throw("Invalid withdraw params")
47+ else {
48+ let unstake = invoke(USDN_STAKING, "unlockNeutrino", [_amount, toBase58String(USDN)], nil)
49+ if ((unstake == unstake))
50+ then (updateInsurance((insurance() - _amount)) ++ [ScriptTransfer(i.caller, _amount, USDN)])
51+ else throw("Strict value is not equal to itself.")
52+ }
53+
54+
55+
56+@Callable(i)
57+func deposit () = {
58+ let _amount = i.payments[0].amount
59+ if (if ((i.payments[0].assetId != USDN))
60+ then true
61+ else if (!(isWhitelist(toString(i.caller))))
62+ then (i.caller != ADMIN_ADDRESS)
63+ else false)
64+ then throw("Invalid deposit params")
65+ else {
66+ let stake = invoke(USDN_STAKING, "lockNeutrino", nil, [AttachedPayment(USDN, _amount)])
67+ if ((stake == stake))
68+ then updateInsurance((insurance() + _amount))
69+ else throw("Strict value is not equal to itself.")
70+ }
71+ }
72+
73+
74+@Verifier(tx)
75+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], ADMIN_PUBLIC_KEY)
76+

github/deemru/w8io/169f3d6 
15.23 ms