tx · ESvAxyGDVEXEdJnCMRK1p2kDMFh8xtbxKiojNv9KQdmS

3N8WReJD4Qpop8qu1h5ULusVwUmnt7yemiP:  -0.01400000 Waves

2019.08.28 13:00 [650905] smart account 3N8WReJD4Qpop8qu1h5ULusVwUmnt7yemiP > SELF 0.00000000 Waves

{ "type": 13, "id": "ESvAxyGDVEXEdJnCMRK1p2kDMFh8xtbxKiojNv9KQdmS", "fee": 1400000, "feeAssetId": null, "timestamp": 1566986433664, "version": 1, "sender": "3N8WReJD4Qpop8qu1h5ULusVwUmnt7yemiP", "senderPublicKey": "GGFF77SnpJEQmG1T1Gidevd7cUEUVccwW3q8TZ1DoRfj", "proofs": [ "61viSU8wF776nwn9Aj5nkXJt5F6FPRjRYi2FLpUvEfq6H4kBXnr9roNP5TvfCC3r35tLQ62kNqSdS3cS7MZ7pqcU" ], "script": "base64:AwQAAAAHUHViS2V5MQEAAAAgaQxxSAhSITOlMYdvwKcfK7u/x0yzOg/68EH0ax0QlWUEAAAAB1B1YktleTIBAAAAILb58FcZXTIbjEshMW6ayDB2XcNop87YatlbtNE8j6N0BAAAAARzaWcxAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAAB1B1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAABHNpZzIDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAHUHViS2V5MgAAAAAAAAAAAQAAAAAAAAAAAAkAAGYAAAACCQAAZAAAAAIFAAAABHNpZzEFAAAABHNpZzIAAAAAAAAAAADO+UOI", "chainId": 84, "height": 650905, "spentComplexity": 0 } View: original | compacted Prev: CCGoNuCe8aAhpRtGgdhNyuiLxf48cboTLAkRBCvAK6sf Next: C5gadm7TiPp6jdWcLyo9TokAFn31xbGjJjD7f7wjEjon 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)) + "_prob"), probability), DataEntry((((id + "_") + toBase58String(i.transactionId)) + "_imp"), 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/3ef1775 
41.64 ms