tx · Ek9H3jgrWL4aT2DoYuQmdjgcprBBzgDNefUW8jLh345u

3N3wBswhGGLLvVmd6KAA7hH8tZsu2iSY5Yx:  -0.00100000 Waves

2024.11.11 01:49 [3365971] smart account 3N3wBswhGGLLvVmd6KAA7hH8tZsu2iSY5Yx > SELF 0.00000000 Waves

{ "type": 13, "id": "Ek9H3jgrWL4aT2DoYuQmdjgcprBBzgDNefUW8jLh345u", "fee": 100000, "feeAssetId": null, "timestamp": 1731278751513, "version": 1, "sender": "3N3wBswhGGLLvVmd6KAA7hH8tZsu2iSY5Yx", "senderPublicKey": "HpeKQu8xawfaxbbTSPNMNqVvWM9xhebUcemDK5REzG2j", "proofs": [ "pB3XhStN7ZvQCzNYXj5g7VhUtBzmoQXkZ3ZtPKYeeFLgZ38Qf1Tz8ZLCNJPKmP5B3H5xt4orZp83X4XcoqmBg27", "4WWUdieAzdy5w9Ybi6gpDFoY9KKwPZhZ8w9iXoLhDj15rK6xUgeiULUMEE1GaKe5m5T8sQjk2dE7yyTdjDpXFwVp", "jSHPJnXMyJCoQHrFqx6HkSAE2XsW7xBXCGYk9nXAJcipVL4MGvKqGyf7BZo5iefvYk9y7WuCtfTHta4iGgx3meU" ], "script": null, "chainId": 84, "height": 3365971, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EPMyhANBDH9PQEFXZNP4Q1tKQpXfU2TTE8vUZJACkMLF Next: 7Yp13NTM3tRLaznrjxrQPg72SY2YP1VHWvXoe9j2hHeV Full:
OldNewDifferences
1-{-# STDLIB_VERSION 8 #-}
2-{-# CONTENT_TYPE EXPRESSION #-}
3-let subwarL2_1 = base58'6muGj1AZfEJ2jxi2UKUDR8qsEchQtouSycDRaTHXk7Wx'
4-let subwarL2_2 = base58'DstkNBYUaD6nmPrRxSPM3bbv9hsAogWghMzRbPbYTJUj'
5-let targetDapp1 = value(addressFromString("3PKgN8rfmvF7hK7RWJbpvkh59e1pQkUzero"))
6-let targetDapp2 = value(addressFromString("3PJVm7xLPabmYohbnvdgGDYHMwnZxF2x18m"))
7-let securityDapp = value(addressFromString("3MzgLbskN82suZgkmqTvzQxDtZfjQfX1DLp"))
8-let unlimitedFunctions = "extendMainChain,appendBlock,startAltChain,extendAltChain"
9-let limitedFunctions = "join,leave,withdraw,claimLP"
10-let maxFeePerTx = 500000
11-let signed1 = if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[0], subwarL2_1))
12- then 1
13- else 0
14-let signed2 = if (sigVerify_16Kb(tx.bodyBytes, tx.proofs[1], subwarL2_2))
15- then 1
16- else 0
17-let isMultiSignValid = ((signed1 + signed2) == 2)
18-func isUnlimitedFunction (funcName) = (indexOf(unlimitedFunctions, funcName) != unit)
19-
20-func isLimitedFunction (funcName) = (indexOf(limitedFunctions, funcName) != unit)
21-
22-match tx {
23- case t: InvokeScriptTransaction =>
24- let targetFuncName = t.function
25- if (isMultiSignValid)
26- then true
27- else if (if ((t.dApp == targetDapp1))
28- then true
29- else (t.dApp == targetDapp2))
30- then if (isUnlimitedFunction(targetFuncName))
31- then true
32- else if (isLimitedFunction(targetFuncName))
33- then if ((t.fee > maxFeePerTx))
34- then throw("Transaction fee exceeds maximum allowed amount")
35- else {
36- let checkLimitResult = ScriptTransfer(securityDapp, 0, unit)
37- match checkLimitResult {
38- case checkLimitResult: ScriptTransfer =>
39- true
40- case _ =>
41- throw("Invalid response from security dApp")
42- }
43- }
44- else false
45- else false
46- case _ =>
47- isMultiSignValid
48-}
1+# no script

github/deemru/w8io/169f3d6 
20.57 ms