2021.02.10 17:13 [2455938] smart account 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp > SELF 0.00000000 Waves

{ "type": 13, "id": "D3XfasuiN15qWbKv3uTWEoEjDrEpDf74wxKSPFJ8yUW3", "fee": 1400000, "feeAssetId": null, "timestamp": 1612966234342, "version": 2, "chainId": 87, "sender": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "senderPublicKey": "GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw", "proofs": [ "", "3e5FLi1qxb2EVLYxFygrDoifFR7ACfZb9hYiGJxbjSqB2EyKRpXe5ZU326bQHofuSzdiejpwLF3KG1PrTU6h9gVS", "5nszW2ajafgvuhatTiGLEJb7ekMtEwvi2d9FaMSzHRMHfYSTUpy1mWMzSbVCUS3QTSfS6ZZ7tSMp44RFk1dJbeLa" ], "script": "base64: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", "height": 2455938, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7X42mSPQqYtXZMrTtEpihS8emZcXdNXL9Vz9uf792DUb Next: 6XZdtie48givGCSHdu1Pvy3jdpmUB233RyuxLLVZCrs5 Diff:
OldNewDifferences
1313
1414 let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
1515
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")]
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"), getStringValue(oracle, "eth_usdn")]
1717
1818
1919 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
55
66 let governanceContract = Address(base58'3PLHVWCqA9DJPDbadUofTohnCULLauiDWhS')
77
88 let adminInvoke = base58'Czn4yoAuUZCVCLJDRfskn8URfkwpknwBTZDbs1wFrY7h'
99
1010 let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
1111
1212 let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
1313
1414 let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
1515
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")]
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"), getStringValue(oracle, "eth_usdn")]
1717
1818
1919 @Verifier(tx)
2020 func verify () = match tx {
2121 case invoke: InvokeScriptTransaction =>
2222 let dAppIsExchanger = containsElement(exchangers, toBase58String(addressFromRecipient(invoke.dApp).bytes))
2323 let dAppIsGovernance = (invoke.dApp == governanceContract)
2424 let callExchange = (invoke.function == "exchange")
2525 let callAirdrop = (invoke.function == "airDrop")
2626 let signedByAdmin = sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke)
2727 if (if (if (if (dAppIsExchanger)
2828 then callExchange
2929 else false)
3030 then true
3131 else if (dAppIsGovernance)
3232 then callAirdrop
3333 else false)
3434 then (size(invoke.payments) == 1)
3535 else false)
3636 then signedByAdmin
3737 else false
3838 case _ =>
3939 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
4040 then 1
4141 else 0
4242 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
4343 then 1
4444 else 0
4545 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
4646 then 1
4747 else 0
4848 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
4949 }
5050

github/deemru/w8io/786bc32 
44.25 ms