tx · 7X42mSPQqYtXZMrTtEpihS8emZcXdNXL9Vz9uf792DUb 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp: -0.01000000 Waves 2021.02.05 12:56 [2448492] smart account 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp > SELF 0.00000000 Waves
{ "type": 13, "id": "7X42mSPQqYtXZMrTtEpihS8emZcXdNXL9Vz9uf792DUb", "fee": 1000000, "feeAssetId": null, "timestamp": 1612519039363, "version": 1, "sender": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "senderPublicKey": "GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw", "proofs": [ "2iSZ6Cd3auMUAfzrecQxDgbAMrwR4a6zftRQwVzhZfnvNQEr11PSRpEoSJUV7hHhZsmTvFgmAXtqn1f9tWBhZkLp" ], "script": "base64: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", "chainId": 87, "height": 2448492, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: D3XfasuiN15qWbKv3uTWEoEjDrEpDf74wxKSPFJ8yUW3 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom') | |
5 | + | ||
6 | + | let governanceContract = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS') | |
7 | + | ||
8 | + | let adminInvoke = base58'Czn4yoAuUZCVCLJDRfskn8URfkwpknwBTZDbs1wFrY7h' | |
9 | + | ||
10 | + | let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA' | |
11 | + | ||
12 | + | let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7' | |
13 | + | ||
14 | + | let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ' | |
15 | + | ||
16 | + | let exchangers = [getStringValue(oracle, "waves_usdn"), getStringValue(oracle, "btc_usdn"), getStringValue(oracle, "waves_btc"), getStringValue(oracle, "nsbt_usdn"), getStringValue(oracle, "wct_usdn"), getStringValue(oracle, "usdt_usdn"), getStringValue(oracle, "west_usdn"), getStringValue(oracle, "waves_eurn"), getStringValue(oracle, "usdtlp_usdn"), getStringValue(oracle, "swop_usdn")] | |
17 | + | ||
18 | + | ||
19 | + | @Verifier(tx) | |
20 | + | func verify () = match tx { | |
21 | + | case invoke: InvokeScriptTransaction => | |
22 | + | let dAppIsExchanger = containsElement(exchangers, toBase58String(addressFromRecipient(invoke.dApp).bytes)) | |
23 | + | let dAppIsGovernance = (invoke.dApp == governanceContract) | |
24 | + | let callExchange = (invoke.function == "exchange") | |
25 | + | let callAirdrop = (invoke.function == "airDrop") | |
26 | + | let signedByAdmin = sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke) | |
27 | + | if (if (if (if (dAppIsExchanger) | |
28 | + | then callExchange | |
29 | + | else false) | |
30 | + | then true | |
31 | + | else if (dAppIsGovernance) | |
32 | + | then callAirdrop | |
33 | + | else false) | |
34 | + | then (size(invoke.payments) == 1) | |
35 | + | else false) | |
36 | + | then signedByAdmin | |
37 | + | else false | |
38 | + | case _ => | |
39 | + | let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1)) | |
40 | + | then 1 | |
41 | + | else 0 | |
42 | + | let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2)) | |
43 | + | then 1 | |
44 | + | else 0 | |
45 | + | let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3)) | |
46 | + | then 1 | |
47 | + | else 0 | |
48 | + | (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2) | |
49 | + | } | |
50 | + |
github/deemru/w8io/6500d08 34.86 ms ◑