tx · FCrJotymENDtGAE6EAZyRS61YPk7PuQTDZQg77nCw3Zn 3MrYoV4W5mu5ZP8rPspCXveMXusGstSPTjL: -0.01400000 Waves 2019.09.04 07:37 [660769] smart account 3MrYoV4W5mu5ZP8rPspCXveMXusGstSPTjL > SELF 0.00000000 Waves
{ "type": 13, "id": "FCrJotymENDtGAE6EAZyRS61YPk7PuQTDZQg77nCw3Zn", "fee": 1400000, "feeAssetId": null, "timestamp": 1567571889360, "version": 1, "sender": "3MrYoV4W5mu5ZP8rPspCXveMXusGstSPTjL", "senderPublicKey": "f1NbgbpkRpbigsrHaDkWZAkPgcqd8GM5G5eNmqnTD6z", "proofs": [ "46d2A4jSS6a3oXHScrontt6A6hJbALK28ARwrtHdjnwQyC63wov6Tm7dAqSd4yzHmvsPkBojnugrJotov4heXGS2" ], "script": "base64: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", "chainId": 84, "height": 660769, "spentComplexity": 0 } View: original | compacted Prev: BGX1u72cvsFCkb2qkfimHxq8NAbr4LgRQmdiD49Qm9iR Next: Ba24bD9SwykAeR4p7w22sAgZ7bYShWP5TREzFLceL1nk Diff:
Old | New | Differences | |
---|---|---|---|
12 | 12 | let payment = extract(invoice.payment) | |
13 | 13 | let amount = extract(payment.amount) | |
14 | 14 | let id = extract(invoice.transactionId) | |
15 | - | let paymentAssetId = extract(payment.assetId) | |
15 | + | let paymentAssetId = if (isDefined(payment.assetId)) | |
16 | + | then extract(payment.assetId) | |
17 | + | else throw("Waves is not accepted as payment") | |
16 | 18 | if ((paymentAssetId != acceptedToken)) | |
17 | 19 | then throw("Only payments in SIGN are allowed at the moment") | |
18 | 20 | else if ((amount != currentPrice)) | |
21 | 23 | } | |
22 | 24 | ||
23 | 25 | ||
26 | + | ||
27 | + | @Callable(invoice) | |
28 | + | func createAgreementThreeParties (hash,title,address1,address2,address3) = { | |
29 | + | let payment = extract(invoice.payment) | |
30 | + | let amount = extract(payment.amount) | |
31 | + | let id = extract(invoice.transactionId) | |
32 | + | let paymentAssetId = extract(payment.assetId) | |
33 | + | if ((paymentAssetId != acceptedToken)) | |
34 | + | then throw("Only payments in SIGN are allowed at the moment") | |
35 | + | else if ((amount != currentPrice)) | |
36 | + | then throw("The price is wrong") | |
37 | + | else ScriptResult(WriteSet([DataEntry(("title_" + toBase58String(id)), title), DataEntry(("hash_" + toBase58String(id)), hash), DataEntry(("id_" + toBase58String(id)), id), DataEntry(("counterpart_1_" + toBase58String(id)), address1), DataEntry(("status_counterpart_1_" + toBase58String(id)), "PENDING"), DataEntry(("counterpart_2_" + toBase58String(id)), address2), DataEntry(("status_counterpart_2_" + toBase58String(id)), "PENDING"), DataEntry(("counterpart_3_" + toBase58String(id)), address3), DataEntry(("status_counterpart_3_" + toBase58String(id)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(bank), amount, acceptedToken)])) | |
38 | + | } | |
39 | + | ||
40 | + |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let acceptedToken = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a' | |
5 | 5 | ||
6 | 6 | let currentPrice = 2500 | |
7 | 7 | ||
8 | 8 | let bank = "3MzYLkQ6qCwtbxaYQ2yk1kdUudzbNg4JiTG" | |
9 | 9 | ||
10 | 10 | @Callable(invoice) | |
11 | 11 | func createAgreementTwoParties (hash,title,address1,address2) = { | |
12 | 12 | let payment = extract(invoice.payment) | |
13 | 13 | let amount = extract(payment.amount) | |
14 | 14 | let id = extract(invoice.transactionId) | |
15 | - | let paymentAssetId = extract(payment.assetId) | |
15 | + | let paymentAssetId = if (isDefined(payment.assetId)) | |
16 | + | then extract(payment.assetId) | |
17 | + | else throw("Waves is not accepted as payment") | |
16 | 18 | if ((paymentAssetId != acceptedToken)) | |
17 | 19 | then throw("Only payments in SIGN are allowed at the moment") | |
18 | 20 | else if ((amount != currentPrice)) | |
19 | 21 | then throw("The price is wrong") | |
20 | 22 | else ScriptResult(WriteSet([DataEntry(("title_" + toBase58String(id)), title), DataEntry(("hash_" + toBase58String(id)), hash), DataEntry(("id_" + toBase58String(id)), id), DataEntry(("counterpart_1_" + toBase58String(id)), address1), DataEntry(("status_counterpart_1_" + toBase58String(id)), "PENDING"), DataEntry(("counterpart_2_" + toBase58String(id)), address2), DataEntry(("status_counterpart_2_" + toBase58String(id)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(bank), amount, acceptedToken)])) | |
21 | 23 | } | |
22 | 24 | ||
23 | 25 | ||
26 | + | ||
27 | + | @Callable(invoice) | |
28 | + | func createAgreementThreeParties (hash,title,address1,address2,address3) = { | |
29 | + | let payment = extract(invoice.payment) | |
30 | + | let amount = extract(payment.amount) | |
31 | + | let id = extract(invoice.transactionId) | |
32 | + | let paymentAssetId = extract(payment.assetId) | |
33 | + | if ((paymentAssetId != acceptedToken)) | |
34 | + | then throw("Only payments in SIGN are allowed at the moment") | |
35 | + | else if ((amount != currentPrice)) | |
36 | + | then throw("The price is wrong") | |
37 | + | else ScriptResult(WriteSet([DataEntry(("title_" + toBase58String(id)), title), DataEntry(("hash_" + toBase58String(id)), hash), DataEntry(("id_" + toBase58String(id)), id), DataEntry(("counterpart_1_" + toBase58String(id)), address1), DataEntry(("status_counterpart_1_" + toBase58String(id)), "PENDING"), DataEntry(("counterpart_2_" + toBase58String(id)), address2), DataEntry(("status_counterpart_2_" + toBase58String(id)), "PENDING"), DataEntry(("counterpart_3_" + toBase58String(id)), address3), DataEntry(("status_counterpart_3_" + toBase58String(id)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(bank), amount, acceptedToken)])) | |
38 | + | } | |
39 | + | ||
40 | + |
github/deemru/w8io/169f3d6 29.26 ms ◑