tx · 3e9XLdKiPs7BVfrf48xE8D7cEghNvsCyjxUgxcr3iLoj

3MwRzX5oVjsPnF7kMa8UcZJXfGYo4aUt39j:  -0.01400000 Waves

2019.08.28 12:59 [650904] smart account 3MwRzX5oVjsPnF7kMa8UcZJXfGYo4aUt39j > SELF 0.00000000 Waves

{ "type": 13, "id": "3e9XLdKiPs7BVfrf48xE8D7cEghNvsCyjxUgxcr3iLoj", "fee": 1400000, "feeAssetId": null, "timestamp": 1566986361374, "version": 1, "sender": "3MwRzX5oVjsPnF7kMa8UcZJXfGYo4aUt39j", "senderPublicKey": "HzZvd2xvCBYj1fJkJkrLXTUKvxdSWX4Ujupzr98p5y9R", "proofs": [ "4p8mgypabixqfno17fPdJJ1cvNXvb8WDxYi4ovH2FGgMgQi4FGLsXuMhCFZceqCyQWH3iiNL3QykfEjtzUpdqR8n" ], "script": "base64:AwQAAAAHUHViS2V5MQEAAAAgaQxxSAhSITOlMYdvwKcfK7u/x0yzOg/68EH0ax0QlWUEAAAAB1B1YktleTIBAAAAILb58FcZXTIbjEshMW6ayDB2XcNop87YatlbtNE8j6N0BAAAAARzaWcxAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAB1B1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAABHNpZzIDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAHUHViS2V5MgAAAAAAAAAAAQAAAAAAAAAAAAkAAGYAAAACCQAAZAAAAAIFAAAABHNpZzEFAAAABHNpZzIAAAAAAAAAAADO+UOI", "chainId": 84, "height": 650904, "spentComplexity": 0 } View: original | compacted Prev: 9Atv7uLdzLE2ozBTt4HHyAg1G9unDxVT2mNAZtzNDqDa Next: 5uWKq9zV8UfsRj2eoPq4qED6SegkDBDDztRP35cgfKFM Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
2-{-# SCRIPT_TYPE ACCOUNT #-}
3-{-# CONTENT_TYPE DAPP #-}
4-let EMTPYSTRING = ""
5-
6-let EVALUATED = "EVALUATED"
7-
8-func getStringFromKey (key) = match getString(this, key) {
9- case str: String =>
10- str
11- case _ =>
12- EMTPYSTRING
13-}
14-
15-
16-func isValidSender (sender) = {
17- let entryForSenderAddress = getStringFromKey(sender)
18- if ((entryForSenderAddress == EMTPYSTRING))
19- then false
20- else true
21- }
22-
23-
24-func senderNotYetEvaluated (sender) = {
25- let entryForSenderAddress = getStringFromKey(sender)
26- if ((entryForSenderAddress != EVALUATED))
27- then true
28- else false
29- }
30-
31-
32-@Callable(i)
33-func addRisk (name,description) = {
34- let sender = toBase58String(i.caller.bytes)
35- if (isValidSender(sender))
36- then WriteSet([DataEntry((toBase58String(i.transactionId) + "_name"), name), DataEntry((toBase58String(i.transactionId) + "_description"), description)])
37- else throw("Sender not allowed to store risks!")
38- }
39-
40-
41-
42-@Callable(i)
43-func addConsolidatedRisk (name,description) = {
44- let sender = toBase58String(i.caller.bytes)
45- if (isValidSender(sender))
46- then WriteSet([DataEntry((toBase58String(i.transactionId) + "_consolidated_name"), name), DataEntry((toBase58String(i.transactionId) + "_consolidated_description"), description)])
47- else throw("Sender not allowed to consolidate risks!")
48- }
49-
50-
51-
52-@Callable(i)
53-func evaluateRisk (id,probability,impact) = {
54- let sender = toBase58String(i.caller.bytes)
55- if (if (isValidSender(sender))
56- then senderNotYetEvaluated(sender)
57- else false)
58- then WriteSet([DataEntry((((id + "_") + toBase58String(i.transactionId)) + "_probability"), probability), DataEntry((((id + "_") + toBase58String(i.transactionId)) + "_impact"), impact), DataEntry(sender, EVALUATED)])
59- else throw("Sender not allowed to evaluate or evaluated already!")
60- }
61-
62-
63-@Verifier(tx)
64-func verify () = match tx {
65- case _ =>
66- true
67-}
68-
2+{-# CONTENT_TYPE EXPRESSION #-}
3+let PubKey1 = base58'854p8BYzrj6yBPRPmfQur3oF1Rjc1AJ548qRp5FT5kDa'
4+let PubKey2 = base58'DKGFPozLrsiR8NM4NJzqQaBYC8NyGYjuw2hDYicQVjco'
5+let sig1 = if (sigVerify(tx.bodyBytes, tx.proofs[0], PubKey1))
6+ then 1
7+ else 0
8+let sig2 = if (sigVerify(tx.bodyBytes, tx.proofs[1], PubKey2))
9+ then 1
10+ else 0
11+((sig1 + sig2) > 0)

github/deemru/w8io/873ac7e 
37.13 ms