|
2 | 2 | from sovtoken.exceptions import UTXOError |
3 | 3 |
|
4 | 4 | from indy_common.authorize.auth_actions import AuthActionAdd |
5 | | -from sovtoken.constants import INPUTS, OUTPUTS, XFER_PUBLIC, TOKEN_LEDGER_ID, UTXO_CACHE_LABEL |
| 5 | +from sovtoken.constants import INPUTS, OUTPUTS, XFER_PUBLIC, TOKEN_LEDGER_ID, UTXO_CACHE_LABEL, SIGS |
6 | 6 | from sovtoken.messages.txn_validator import txn_xfer_public_validate |
7 | 7 | from sovtoken.request_handlers.token_utils import spend_input, add_new_output, sum_inputs, sum_outputs, \ |
8 | 8 | validate_given_inputs_outputs |
9 | 9 | from sovtoken.types import Output |
10 | 10 |
|
| 11 | +from plenum.common.constants import ED25519 |
11 | 12 | from plenum.common.exceptions import InvalidClientMessageException, InvalidClientRequest, OperationError |
12 | 13 | from plenum.common.request import Request |
13 | | -from plenum.common.txn_util import get_payload_data, get_seq_no |
| 14 | +from plenum.common.txn_util import get_payload_data, get_seq_no, add_sigs_to_txn |
14 | 15 | from plenum.server.database_manager import DatabaseManager |
15 | 16 | from plenum.server.request_handlers.handler_interfaces.write_request_handler import WriteRequestHandler |
16 | 17 |
|
@@ -63,6 +64,14 @@ def update_state(self, txn, prev_result, request, is_committed=False): |
63 | 64 | error = 'Exception {} while updating state'.format(ex) |
64 | 65 | raise OperationError(error) |
65 | 66 |
|
| 67 | + def _req_to_txn(self, req: Request): |
| 68 | + sigs = req.operation.pop(SIGS) |
| 69 | + txn = super()._req_to_txn(req) |
| 70 | + req.operation[SIGS] = sigs |
| 71 | + sigs = [(i["address"], s) for i, s in zip(req.operation[INPUTS], sigs)] |
| 72 | + add_sigs_to_txn(txn, sigs, sig_type=ED25519) |
| 73 | + return txn |
| 74 | + |
66 | 75 | def _do_validate_inputs_ouputs(self, request): |
67 | 76 | try: |
68 | 77 | sum_in = sum_inputs(self.utxo_cache, |
|
0 commit comments