tx · 9DuHWkQxQ5YkvR7ntPTgwMB2aqd47dPHq5SFnCM4cxvh

3PCi5XVx7biaL7y5zAoR3YFmifAFnUAs7bY:  -0.01000000 Waves

2024.04.04 11:16 [4113693] smart account 3PCi5XVx7biaL7y5zAoR3YFmifAFnUAs7bY > SELF 0.00000000 Waves

{ "type": 13, "id": "9DuHWkQxQ5YkvR7ntPTgwMB2aqd47dPHq5SFnCM4cxvh", "fee": 1000000, "feeAssetId": null, "timestamp": 1712218645555, "version": 2, "chainId": 87, "sender": "3PCi5XVx7biaL7y5zAoR3YFmifAFnUAs7bY", "senderPublicKey": "HUub6kmMSCwNcauBFtFefhB61vtsBGGWw1xAUjHbif3H", "proofs": [ "n9jYCCGAUqRWzkRuCLPkjn3KXos71WdJpDwT9ksuGZhob375bsyR1VuKtNwJCsLzqFHpDDGDBesByGHJPPo6cn6" ], "script": "base64:BgIECAISAAYADVVTRFRfQVNTRVRfSUQCLEc1V1dXenpWc1dSeXpHZjMyeG9qYm5mcDdnWGJXcmdxSlQ4UmNWV0VmTG1DAA9VU0RUXzJfQVNTRVRfSUQCLDl3YzNMWE5BNFRFQnNYeUt0b0xFOW1yYkREN1dNSFh2WHJDalp2YWJMQXNpAA1VU0RDX0FTU0VUX0lEAiwzYXlIM1BoV01raEZzeVNzVVZjQzhCdkZmMVF5eEdCNUJadVRQeVZ0bVA0dgAPVVNEQ18yX0FTU0VUX0lEAixIR2dhYlRxVVM4V3RWRlVKemZtclRETWdFY2NKdVpMQlBoRmdRRnh2bnNvVwAMQkFJX0FTU0VUX0lEAiwyZmR6eUh2WEdDcWF6MVhBOG05Zm9kZW1tUDlnaVZCY3BlNEpxOUY2M29GTAELd2hpdGVsaXN0ZWQBB2FkZHJlc3MEByRtYXRjaDAJAJsIAgUEdGhpcwkArAICAgp3aGl0ZWxpc3RfBQdhZGRyZXNzAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHAQFpAQNidXkABBFXQVZFU19VU0RUX09SQUNMRQkBEUBleHRyTmF0aXZlKDEwNjIpAQIjM1BLa29qS2RkNkJCelRmMVJYYlFWZlVEcmFORlhYSEt6UUYEFVdBVkVTX1VTRFRfT1JBQ0xFX0tFWQIXJXMlc19fcHJpY2VfX1dBVkVTLVVTRFQEEG51bWJlck9mUGF5bWVudHMJAJADAQgFAWkIcGF5bWVudHMEDnBheW1lbnRBc3NldElkCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQEBnNlbmRlcggFAWkGY2FsbGVyAwkBASEBCQELd2hpdGVsaXN0ZWQBCQClCAEFBnNlbmRlcgkAAgECGEFkZHJlc3Mgbm90IHdoaXRlbGlzdGVkIQMJAQIhPQIFEG51bWJlck9mUGF5bWVudHMAAQkAAgECElBheW1lbnQgbmVjZXNzYXJ5IQQHcGF5bWVudAkAkQMCCAUBaQhwYXltZW50cwAABApmZWVBc3NldElkCAUHcGF5bWVudAdhc3NldElkBBBmZWVBc3NldElkU3RyaW5nBAckbWF0Y2gwBQpmZWVBc3NldElkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJANgEAQUBYgIABA1wYXltZW50QW1vdW50CAUHcGF5bWVudAZhbW91bnQEBmFtb3VudAMJAQEhAQkBCWlzRGVmaW5lZAEFCmZlZUFzc2V0SWQEDndhdmVzVXNkdFByaWNlBAckbWF0Y2gwCQCaCAIFEVdBVkVTX1VTRFRfT1JBQ0xFBRVXQVZFU19VU0RUX09SQUNMRV9LRVkDCQABAgUHJG1hdGNoMAIDSW50BAFuBQckbWF0Y2gwBQFuAAAJAGgCCQBrAwUNcGF5bWVudEFtb3VudAUOd2F2ZXNVc2R0UHJpY2UAgMLXLwBkAwkAAAIFEGZlZUFzc2V0SWRTdHJpbmcFDVVTRFRfQVNTRVRfSUQJAGgCBQ1wYXltZW50QW1vdW50AGQDCQAAAgUQZmVlQXNzZXRJZFN0cmluZwUPVVNEVF8yX0FTU0VUX0lECQBoAgUNcGF5bWVudEFtb3VudABkAwkAAAIFEGZlZUFzc2V0SWRTdHJpbmcFDVVTRENfQVNTRVRfSUQJAGgCBQ1wYXltZW50QW1vdW50AGQDCQAAAgUQZmVlQXNzZXRJZFN0cmluZwUPVVNEQ18yX0FTU0VUX0lECQBoAgUNcGF5bWVudEFtb3VudABkCQACAQIpUGF5bWVudCBuZWNlc3NhcnkgaW4gV2F2ZXMsIFVTREMgb3IgVVNEVCEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUGc2VuZGVyBQZhbW91bnQJANkEAQUMQkFJX0FTU0VUX0lEBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5cl6W1w==", "height": 4113693, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 58ebsiVWkU1DUXmGpXaabdrJV9bhmpN12K4muxLknCnA Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let USDT_ASSET_ID = "G5WWWzzVsWRyzGf32xojbnfp7gXbWrgqJT8RcVWEfLmC"
5+
6+let USDT_2_ASSET_ID = "9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi"
7+
8+let USDC_ASSET_ID = "3ayH3PhWMkhFsySsUVcC8BvFf1QyxGB5BZuTPyVtmP4v"
9+
10+let USDC_2_ASSET_ID = "HGgabTqUS8WtVFUJzfmrTDMgEccJuZLBPhFgQFxvnsoW"
11+
12+let BAI_ASSET_ID = "2fdzyHvXGCqaz1XA8m9fodemmP9giVBcpe4Jq9F63oFL"
13+
14+func whitelisted (address) = match getBoolean(this, ("whitelist_" + address)) {
15+ case b: Boolean =>
16+ b
17+ case _ =>
18+ false
19+}
20+
21+
22+@Callable(i)
23+func buy () = {
24+ let WAVES_USDT_ORACLE = addressFromStringValue("3PKkojKdd6BBzTf1RXbQVfUDraNFXXHKzQF")
25+ let WAVES_USDT_ORACLE_KEY = "%s%s__price__WAVES-USDT"
26+ let numberOfPayments = size(i.payments)
27+ let paymentAssetId = i.payments[0].assetId
28+ let sender = i.caller
29+ if (!(whitelisted(toString(sender))))
30+ then throw("Address not whitelisted!")
31+ else if ((numberOfPayments != 1))
32+ then throw("Payment necessary!")
33+ else {
34+ let payment = i.payments[0]
35+ let feeAssetId = payment.assetId
36+ let feeAssetIdString = match feeAssetId {
37+ case b: ByteVector =>
38+ toBase58String(b)
39+ case _ =>
40+ ""
41+ }
42+ let paymentAmount = payment.amount
43+ let amount = if (!(isDefined(feeAssetId)))
44+ then {
45+ let wavesUsdtPrice = match getInteger(WAVES_USDT_ORACLE, WAVES_USDT_ORACLE_KEY) {
46+ case n: Int =>
47+ n
48+ case _ =>
49+ 0
50+ }
51+ (fraction(paymentAmount, wavesUsdtPrice, 100000000) * 100)
52+ }
53+ else if ((feeAssetIdString == USDT_ASSET_ID))
54+ then (paymentAmount * 100)
55+ else if ((feeAssetIdString == USDT_2_ASSET_ID))
56+ then (paymentAmount * 100)
57+ else if ((feeAssetIdString == USDC_ASSET_ID))
58+ then (paymentAmount * 100)
59+ else if ((feeAssetIdString == USDC_2_ASSET_ID))
60+ then (paymentAmount * 100)
61+ else throw("Payment necessary in Waves, USDC or USDT!")
62+[ScriptTransfer(sender, amount, fromBase58String(BAI_ASSET_ID))]
63+ }
64+ }
65+
66+
67+@Verifier(tx)
68+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
69+

github/deemru/w8io/3ef1775 
16.53 ms