tx · J7qN6ppeivoy69zYzA2CctenKKyHqa4QTLNztqjunD6D 3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt: -0.00300000 Waves 2023.09.30 10:08 [3843648] smart account 3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt > SELF 0.00000000 Waves
{ "type": 13, "id": "J7qN6ppeivoy69zYzA2CctenKKyHqa4QTLNztqjunD6D", "fee": 300000, "feeAssetId": null, "timestamp": 1696057759193, "version": 2, "chainId": 87, "sender": "3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt", "senderPublicKey": "33BMe2b9KpjJyCQXAKa3DKHqSBjB7q2mEJoiP17cRLAN", "proofs": [ "5CKfbKgf9GtsgyhchcET1CmH7smrTLuBG54PnKGdTX9mkE1x1GW4t4ST38LfCHGGtmsTGo6bbWGvpw35KD5hQLw2" ], "script": "base64:BgIKCAISABIAEgASAAoAAmQ4AIDC1y8AA2QxNgkAaAIFAmQ4BQJkOAAKbWFpbndhbGxldAkBB0FkZHJlc3MBARoBV+lmISrSBuDcForrCFqX1J+dYqN/98JaTAAHdXNkdGVyYwEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kBDXRyeUdldEludGVnZXIBA2tleQQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAAAB1BMX01haW4JAQdBZGRyZXNzAQEaAVcglFxKrc/0SDk7iECzv9vujFCgp2rP2ugAB1BMX0RlZmkJAQdBZGRyZXNzAQEaAVcZCzuPP83F9QBSQ7jrpozIrL8UOTE+JL4ABlBMX0xvdwkBB0FkZHJlc3MBARoBV65gFNJmcAzwP9x0xdJ05hq+qeBSweoLkAAHYWRkcmVzcwkApQgBCQEHQWRkcmVzcwEBGgFXGIkbJG0v4kSlsrku0GQjUC4p33Iw2jJZAQhQTF92YWx1ZQILZEFwcEFkZHJlc3MFYXNzZXQJAGsDCQERQGV4dHJOYXRpdmUoMTA1MCkCBQtkQXBwQWRkcmVzcwkArAICCQCsAgIFB2FkZHJlc3MCCl9zdXBwbGllZF8JANgEAQUFYXNzZXQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFC2RBcHBBZGRyZXNzCQCsAgIJANgEAQUFYXNzZXQCBl9zUmF0ZQUDZDE2BAFpAQtEZXBvc2l0VVNEVAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAxzdXBwbHlhbW91bnQJAGkCCAUDcG10BmFtb3VudAADAwkBAiE9AggFA3BtdAdhc3NldElkBQd1c2R0ZXJjCQACAQIcYXR0YWNoIFVTRFQtRVJDMjAgdG9rZW4gb25seQQSU3VwcGx5VVNEVE1haW5Qb29sCQD8BwQJAQdBZGRyZXNzAQEaAVcglFxKrc/0SDk7iECzv9vujFCgp2rP2ugCBnN1cHBseQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQd1c2R0ZXJjBQxzdXBwbHlhbW91bnQFA25pbAMJAAACBRJTdXBwbHlVU0RUTWFpblBvb2wFElN1cHBseVVTRFRNYWluUG9vbAQXU3VwcGx5VVNEVFdhdmVzRGVmaVBvb2wJAPwHBAkBB0FkZHJlc3MBARoBVxkLO48/zcX1AFJDuOumjMisvxQ5MT4kvgIGc3VwcGx5BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3VzZHRlcmMFDHN1cHBseWFtb3VudAUDbmlsAwkAAAIFF1N1cHBseVVTRFRXYXZlc0RlZmlQb29sBRdTdXBwbHlVU0RUV2F2ZXNEZWZpUG9vbAQQU3VwcGx5VVNEVExvd0NhcAkA/AcECQEHQWRkcmVzcwEBGgFXrmAU0mZwDPA/3HTF0nTmGr6p4FLB6guQAgZzdXBwbHkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUHdXNkdGVyYwUMc3VwcGx5YW1vdW50BQNuaWwDCQAAAgUQU3VwcGx5VVNEVExvd0NhcAUQU3VwcGx5VVNEVExvd0NhcAkAzAgCCQEMSW50ZWdlckVudHJ5AgIXdG90YWwgVVNEVCBkZXBvc2l0ZWQgUEwJAGQCCAUDcG10BmFtb3VudAkBC3ZhbHVlT3JFbHNlAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIXdG90YWwgVVNEVCBkZXBvc2l0ZWQgUEwAAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEXdpdGhkcmF3VVNEVF9NYWluAAMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAQIhPQIIBQFpBmNhbGxlcgUKbWFpbndhbGxldAcJAAIBAglubyBhY2Nlc3MEEndpdGhkcmF3YW1vdW50TWFpbgkAZQIJAQhQTF92YWx1ZQIFB1BMX01haW4FB3VzZHRlcmMJAGkCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhd0b3RhbCBVU0RUIGRlcG9zaXRlZCBQTAADBAl3aXRoZHJhd00JAPwHBAUHUExfTWFpbgIId2l0aGRyYXcJAMwIAgkA2AQBBQd1c2R0ZXJjCQDMCAIFEndpdGhkcmF3YW1vdW50TWFpbgUDbmlsBQNuaWwDCQAAAgUJd2l0aGRyYXdNBQl3aXRoZHJhd00JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUKbWFpbndhbGxldAUSd2l0aGRyYXdhbW91bnRNYWluBQd1c2R0ZXJjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERd2l0aGRyYXdVU0RUX0RlZmkAAwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkBAiE9AggFAWkGY2FsbGVyBQptYWlud2FsbGV0BwkAAgECCW5vIGFjY2VzcwQSd2l0aGRyYXdhbW91bnREZWZpCQBlAgkBCFBMX3ZhbHVlAgUHUExfRGVmaQUHdXNkdGVyYwkAaQIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCF3RvdGFsIFVTRFQgZGVwb3NpdGVkIFBMAAMECXdpdGhkcmF3RAkA/AcEBQdQTF9EZWZpAgh3aXRoZHJhdwkAzAgCCQDYBAEFB3VzZHRlcmMJAMwIAgUSd2l0aGRyYXdhbW91bnREZWZpBQNuaWwFA25pbAMJAAACBQl3aXRoZHJhd0QFCXdpdGhkcmF3RAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQptYWlud2FsbGV0BRJ3aXRoZHJhd2Ftb3VudERlZmkFB3VzZHRlcmMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARB3aXRoZHJhd1VTRFRfTG93AAMDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAQIhPQIIBQFpBmNhbGxlcgUKbWFpbndhbGxldAcJAAIBAglubyBhY2Nlc3MEEXdpdGhkcmF3YW1vdW50TG93CQBlAgkBCFBMX3ZhbHVlAgUGUExfTG93BQd1c2R0ZXJjCQBpAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIXdG90YWwgVVNEVCBkZXBvc2l0ZWQgUEwAAwQJd2l0aGRyYXdMCQD8BwQFBlBMX0xvdwIId2l0aGRyYXcJAMwIAgkA2AQBBQd1c2R0ZXJjCQDMCAIFEXdpdGhkcmF3YW1vdW50TG93BQNuaWwFA25pbAMJAAACBQl3aXRoZHJhd0wFCXdpdGhkcmF3TAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQptYWlud2FsbGV0BRF3aXRoZHJhd2Ftb3VudExvdwUHdXNkdGVyYwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAJZJtj0=", "height": 3843648, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8m6jHE11Fsm1Noc7Dou6eM5BVF8bkdmALpKrXBa8yzTD Next: ATu5wjcXAZXQvztbRvDxHnLpKQBXehh7azLduAUNtWos Full:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let d8 = 100000000 | |
5 | + | ||
6 | + | let d16 = (d8 * d8) | |
7 | + | ||
8 | + | let mainwallet = Address(base58'3PPCzX2doZ7agBNuGSKqjrbdXgGEtE7CpQ3') | |
9 | + | ||
10 | + | let usdterc = base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi' | |
11 | + | ||
12 | + | func tryGetInteger (key) = match getInteger(this, key) { | |
13 | + | case b: Int => | |
14 | + | b | |
15 | + | case _ => | |
16 | + | 0 | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | let PL_Main = Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH') | |
21 | + | ||
22 | + | let PL_Defi = Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X') | |
23 | + | ||
24 | + | let PL_Low = Address(base58'3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH') | |
25 | + | ||
26 | + | let address = toString(Address(base58'3P4AdC9J6MzTEi2LL9xgQN8EimMnbk4d6Nt')) | |
27 | + | ||
28 | + | func PL_value (dAppAddress,asset) = fraction(getIntegerValue(dAppAddress, ((address + "_supplied_") + toBase58String(asset))), getIntegerValue(dAppAddress, (toBase58String(asset) + "_sRate")), d16) | |
4 | 29 | ||
5 | 30 | ||
6 | 31 | @Callable(i) | |
7 | - | func sum () = { | |
8 | - | let sumStore = "wavelets_per_block_sum" | |
9 | - | let sum = getIntegerValue(Address(base58'3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h'), sumStore) | |
10 | - | [IntegerEntry(sumStore, sum)] | |
32 | + | func DepositUSDT () = { | |
33 | + | let pmt = value(i.payments[0]) | |
34 | + | let supplyamount = (pmt.amount / 3) | |
35 | + | if ((pmt.assetId != usdterc)) | |
36 | + | then throw("attach USDT-ERC20 token only") | |
37 | + | else { | |
38 | + | let SupplyUSDTMainPool = invoke(Address(base58'3P4uA5etnZi4AmBabKinq2bMiWU8KcnHZdH'), "supply", nil, [AttachedPayment(usdterc, supplyamount)]) | |
39 | + | if ((SupplyUSDTMainPool == SupplyUSDTMainPool)) | |
40 | + | then { | |
41 | + | let SupplyUSDTWavesDefiPool = invoke(Address(base58'3P4DK5VzDwL3vfc5ahUEhtoe5ByZNyacJ3X'), "supply", nil, [AttachedPayment(usdterc, supplyamount)]) | |
42 | + | if ((SupplyUSDTWavesDefiPool == SupplyUSDTWavesDefiPool)) | |
43 | + | then { | |
44 | + | let SupplyUSDTLowCap = invoke(Address(base58'3PHpuQUPVUoR3AYzFeJzeWJfYLsLTmWssVH'), "supply", nil, [AttachedPayment(usdterc, supplyamount)]) | |
45 | + | if ((SupplyUSDTLowCap == SupplyUSDTLowCap)) | |
46 | + | then [IntegerEntry("total USDT deposited PL", (pmt.amount + valueOrElse(getIntegerValue(this, "total USDT deposited PL"), 0)))] | |
47 | + | else throw("Strict value is not equal to itself.") | |
48 | + | } | |
49 | + | else throw("Strict value is not equal to itself.") | |
50 | + | } | |
51 | + | else throw("Strict value is not equal to itself.") | |
52 | + | } | |
11 | 53 | } | |
54 | + | ||
55 | + | ||
56 | + | ||
57 | + | @Callable(i) | |
58 | + | func withdrawUSDT_Main () = if (if ((i.caller != this)) | |
59 | + | then (i.caller != mainwallet) | |
60 | + | else false) | |
61 | + | then throw("no access") | |
62 | + | else { | |
63 | + | let withdrawamountMain = (PL_value(PL_Main, usdterc) - (getIntegerValue(this, "total USDT deposited PL") / 3)) | |
64 | + | let withdrawM = invoke(PL_Main, "withdraw", [toBase58String(usdterc), withdrawamountMain], nil) | |
65 | + | if ((withdrawM == withdrawM)) | |
66 | + | then [ScriptTransfer(mainwallet, withdrawamountMain, usdterc)] | |
67 | + | else throw("Strict value is not equal to itself.") | |
68 | + | } | |
69 | + | ||
70 | + | ||
71 | + | ||
72 | + | @Callable(i) | |
73 | + | func withdrawUSDT_Defi () = if (if ((i.caller != this)) | |
74 | + | then (i.caller != mainwallet) | |
75 | + | else false) | |
76 | + | then throw("no access") | |
77 | + | else { | |
78 | + | let withdrawamountDefi = (PL_value(PL_Defi, usdterc) - (getIntegerValue(this, "total USDT deposited PL") / 3)) | |
79 | + | let withdrawD = invoke(PL_Defi, "withdraw", [toBase58String(usdterc), withdrawamountDefi], nil) | |
80 | + | if ((withdrawD == withdrawD)) | |
81 | + | then [ScriptTransfer(mainwallet, withdrawamountDefi, usdterc)] | |
82 | + | else throw("Strict value is not equal to itself.") | |
83 | + | } | |
84 | + | ||
85 | + | ||
86 | + | ||
87 | + | @Callable(i) | |
88 | + | func withdrawUSDT_Low () = if (if ((i.caller != this)) | |
89 | + | then (i.caller != mainwallet) | |
90 | + | else false) | |
91 | + | then throw("no access") | |
92 | + | else { | |
93 | + | let withdrawamountLow = (PL_value(PL_Low, usdterc) - (getIntegerValue(this, "total USDT deposited PL") / 3)) | |
94 | + | let withdrawL = invoke(PL_Low, "withdraw", [toBase58String(usdterc), withdrawamountLow], nil) | |
95 | + | if ((withdrawL == withdrawL)) | |
96 | + | then [ScriptTransfer(mainwallet, withdrawamountLow, usdterc)] | |
97 | + | else throw("Strict value is not equal to itself.") | |
98 | + | } | |
12 | 99 | ||
13 | 100 |
github/deemru/w8io/873ac7e 46.96 ms ◑![]()