tx · 3C2YBfWzkkyFLicpwhVyAcPgR77q41fNMPycswLsvGaD

3N4Y3Haaj4crmm3VAmcZrcFYyDR4MaMEUww:  -0.03200000 Waves

2022.05.23 19:30 [2064574] smart account 3N4Y3Haaj4crmm3VAmcZrcFYyDR4MaMEUww > SELF 0.00000000 Waves

{ "type": 13, "id": "3C2YBfWzkkyFLicpwhVyAcPgR77q41fNMPycswLsvGaD", "fee": 3200000, "feeAssetId": null, "timestamp": 1653323427712, "version": 2, "chainId": 84, "sender": "3N4Y3Haaj4crmm3VAmcZrcFYyDR4MaMEUww", "senderPublicKey": "F3ixJQVS9mQdBAqRCNKZqZ7HWdsZcBw6bS7zhiA579rV", "proofs": [ "2Md99s9AjfcFmjv6CNzFQHgjnEfcYbtUDsUoGGjvneGghEjeerGWoxJMGSYuJ5HXJMQ73F9H8kFkDxB9Hs51XX89" ], "script": "base64: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", "height": 2064574, "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'3N2k5AsoftpuadZquyYj5KUmrrMLy1pfEbs')
9+
10+let ADMIN_PUBLIC_KEY = base58'ELPDLLFSrLxbBb1bZghv2XT3FYd8EXFYBPL5zPP7Pk4u'
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/3ef1775 
42.58 ms