tx · CcFWaVLFcAXc6xDfC1FkoxGgCBzVkyVzDdT3VpHYd3Q

3P7ok1T2xn87ea5xjxBPFZPNeShgSqHeaHg:  -0.01400000 Waves

2020.01.07 23:12 [1874414] smart account 3P7ok1T2xn87ea5xjxBPFZPNeShgSqHeaHg > SELF 0.00000000 Waves

{ "type": 13, "id": "CcFWaVLFcAXc6xDfC1FkoxGgCBzVkyVzDdT3VpHYd3Q", "fee": 1400000, "feeAssetId": null, "timestamp": 1578427858126, "version": 1, "sender": "3P7ok1T2xn87ea5xjxBPFZPNeShgSqHeaHg", "senderPublicKey": "5KD6eu1HF3Fnzdr5L6ebB4u1fQEDtLwtpvTGJfKgQc4h", "proofs": [ "4usUDV1JonnZnxvdsAkBd5yXLzJZVn3ipwBfetBMS8XfStjrp9ErwfWCWkpQUAM3ZgEF1mp1g5bpUREcFSRWY2Vd", "2GzfwotW3HwkTa6iDB8BRiVGXvLDr74FVUair81kSB9Wtfj6qCaAnAf34tPUx9MUiekg6wREwyfuYE1C2CppSZmU" ], "script": "base64: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", "chainId": 87, "height": 1874414, "spentComplexity": 0 } View: original | compacted Prev: ATjg6MaVfZLT2z2mMzzmThxXzyfJSwrc4r4u5kxjZwY3 Next: D7Qcnoj3M59mbKsaLdHwGhrd7ArcHbGuDK3e7HD67p1E Diff:
OldNewDifferences
99 let matcherFeeId = Unit()
1010 let payoutAssetId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
1111 let traderPubKey = extract(tx.senderPublicKey)
12-let managerPubKey = base58'2jtARCoafX5CBQ9jXV265Fng8t58hMmmdpWQdgMzk1z9'
13-let investorPubKeys = [base58'66BGZcJJ9yAWcHKZZeiuA71wAvC5GWTmdQWArjt1g6jC']
12+let managerPubKey = base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT'
13+let investorPubKeys = [base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT']
1414 func isFiatAsset (assetId) = if (if (if (if (if ((assetId == base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'))
1515 then true
1616 else (assetId == base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'))
7272 then sigVerify(i.bodyBytes, i.proofs[0], traderPubKey)
7373 else false
7474 case t: TransferTransaction =>
75+ let recipient = addressFromRecipient(t.recipient)
7576 let rightTransfer = if (if ((t.assetId == payoutAssetId))
76- then (addressFromRecipient(t.recipient) == addressFromString(payoutAddress))
77+ then (recipient == addressFromString(payoutAddress))
7778 else false)
7879 then true
7980 else if (if ((t.assetId == priceAssetId))
8081 then true
8182 else (t.assetId == amountAssetId))
82- then (addressFromRecipient(t.recipient) == addressFromString(redeemAddress))
83+ then (recipient == addressFromString(redeemAddress))
8384 else false
8485 if (rightTransfer)
8586 then if (sigVerify(t.bodyBytes, t.proofs[1], managerPubKey))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# CONTENT_TYPE EXPRESSION #-}
33 let payoutAddress = "3P8uxNCMRWjj2DUWAXaRXF4Q4thX9jQxXcs"
44 let redeemAddress = "3PAkNyfHB5NV9jXioZ1DG3mynhUZyUzHWML"
55 let votingAddress = "3PGEh2VpbpYyetTUTCY6bRxv2mpMwZoz5sP"
66 let lockExpired = (value(lastBlock.timestamp) >= (1609459200 * 1000))
77 let priceAssetId = Unit()
88 let amountAssetId = base58'BS1KFNR8zrXKBEWdUUvpaP6G57Hic3aESkwK7qQKdLpB'
99 let matcherFeeId = Unit()
1010 let payoutAssetId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
1111 let traderPubKey = extract(tx.senderPublicKey)
12-let managerPubKey = base58'2jtARCoafX5CBQ9jXV265Fng8t58hMmmdpWQdgMzk1z9'
13-let investorPubKeys = [base58'66BGZcJJ9yAWcHKZZeiuA71wAvC5GWTmdQWArjt1g6jC']
12+let managerPubKey = base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT'
13+let investorPubKeys = [base58'EaKK5PAFUkgtnF7xcyABUzi8YBQADmUDnPzQBHjCTAKT']
1414 func isFiatAsset (assetId) = if (if (if (if (if ((assetId == base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'))
1515 then true
1616 else (assetId == base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'))
1717 then true
1818 else (assetId == base58'DEJbZipbKQjwEiRjx2AqQFucrj5CZ3rAc4ZvFM8nAsoA'))
1919 then true
2020 else (assetId == base58'2mX5DzVKWrAJw8iwdJnV2qtoeVG9h5nTDpTqC1wb1WEN'))
2121 then true
2222 else (assetId == base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'))
2323 then true
2424 else (assetId == base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p')
2525
2626 match tx {
2727 case o: Order =>
2828 let rightOrder = if (if (if (if ((o.matcherFeeAssetId == matcherFeeId))
2929 then (o.assetPair.priceAsset == priceAssetId)
3030 else false)
3131 then (o.assetPair.amountAsset == amountAssetId)
3232 else false)
3333 then true
3434 else if (if (if ((o.orderType == Buy))
3535 then !(isDefined(o.matcherFeeAssetId))
3636 else false)
3737 then !(isDefined(o.assetPair.amountAsset))
3838 else false)
3939 then (o.assetPair.priceAsset == payoutAssetId)
4040 else false)
4141 then true
4242 else if (if (if ((o.orderType == Sell))
4343 then !(isDefined(o.matcherFeeAssetId))
4444 else false)
4545 then if (!(isDefined(o.assetPair.priceAsset)))
4646 then true
4747 else !(isDefined(o.assetPair.amountAsset))
4848 else false)
4949 then !(isFiatAsset(o.assetPair.priceAsset))
5050 else false
5151 if (rightOrder)
5252 then sigVerify(o.bodyBytes, o.proofs[0], traderPubKey)
5353 else false
5454 case b: BurnTransaction =>
5555 let rightBurn = if (if ((b.assetId != payoutAssetId))
5656 then (b.assetId != if (isDefined(priceAssetId))
5757 then priceAssetId
5858 else base58'')
5959 else false)
6060 then (b.assetId != if (isDefined(amountAssetId))
6161 then amountAssetId
6262 else base58'')
6363 else false
6464 if (rightBurn)
6565 then sigVerify(b.bodyBytes, b.proofs[0], traderPubKey)
6666 else false
6767 case l: LeaseCancelTransaction|LeaseTransaction =>
6868 sigVerify(l.bodyBytes, l.proofs[0], traderPubKey)
6969 case i: InvokeScriptTransaction =>
7070 let rightInvoke = (addressFromRecipient(i.dApp) == addressFromString(votingAddress))
7171 if (rightInvoke)
7272 then sigVerify(i.bodyBytes, i.proofs[0], traderPubKey)
7373 else false
7474 case t: TransferTransaction =>
75+ let recipient = addressFromRecipient(t.recipient)
7576 let rightTransfer = if (if ((t.assetId == payoutAssetId))
76- then (addressFromRecipient(t.recipient) == addressFromString(payoutAddress))
77+ then (recipient == addressFromString(payoutAddress))
7778 else false)
7879 then true
7980 else if (if ((t.assetId == priceAssetId))
8081 then true
8182 else (t.assetId == amountAssetId))
82- then (addressFromRecipient(t.recipient) == addressFromString(redeemAddress))
83+ then (recipient == addressFromString(redeemAddress))
8384 else false
8485 if (rightTransfer)
8586 then if (sigVerify(t.bodyBytes, t.proofs[1], managerPubKey))
8687 then true
8788 else lockExpired
8889 else false
8990 case s: SetScriptTransaction =>
9091 let keys = extract(s.senderPublicKey) :: investorPubKeys
9192 let rightSetScript = ((if (sigVerify(s.bodyBytes, s.proofs[1], keys[1]))
9293 then 1
9394 else 0) > (size(investorPubKeys) / 2))
9495 if (rightSetScript)
9596 then sigVerify(s.bodyBytes, s.proofs[0], keys[0])
9697 else false
9798 case _ =>
9899 false
99100 }

github/deemru/w8io/3ef1775 
50.72 ms