2

Is the mms available through the JSON RPC?

I was having luck without using the mms by using the JSON RPC multisig calls, by subclassing monero-python's JSONRPCWallet, up until creating a transaction. I was able to manually finish the process via the wallet CLI, however it was not ideal.

Using the RPC to create the transaction with wallet.transfer(address, amount) I would either get:

as an Address object

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Projects\Monero\server\venv\lib\site-packages\monero\backends\jsonrpc.py", line 428, in transfer
    'destinations': list(map(
TypeError: 'Address' object is not iterable 

or as a string

ValueError: Address must be either 95 or 106 characters long base58-encoded string, is 9 (1 chars length)

Trying to create the tranaction from the Wallet class I would get:


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Projects\Monero\server\venv\lib\site-packages\monero\wallet.py", line 257, in transfer
    return self.accounts[0].transfer(
  File "C:\Projects\Monero\server\venv\lib\site-packages\monero\account.py", line 92, in transfer
    return self._backend.transfer(
  File "C:\Projects\Monero\server\venv\lib\site-packages\monero\backends\jsonrpc.py", line 443, in transfer
    zip(*[_transfers[k] for k in (
  File "C:\Projects\Monero\server\venv\lib\site-packages\monero\backends\jsonrpc.py", line 443, in <listcomp>
    zip(*[_transfers[k] for k in (
KeyError: 'tx_hash_list'

Creating the transaction worked from monero-cli using the standard transfer command, which created the multisig_monero_tx file. If I could interact with the mms through python that would simplify things, but I would rather not use Popen to create the transaction via the CLI.

Can anyone point me in the right direction?

Below is from another SO question but I am not certain it is correct that the RPC uses the mms 'under the hood', as the RPC calls I used did not rely on pyBitmessage.

The only reference I can find in Monero RPC source code to MMS is in wallet2.h mms::message_store& get_message_store() { return m_message_store; }; const mms::message_store& get_message_store() const { return m_message_store; }; mms::multisig_wallet_state get_multisig_wallet_state() const; – Anelito Sep 9 '20 at 10:56

Multisig, which is exposed in the RPC, uses MMS, which is part of wallet2. There are a lot more references to "mms" than what you have found! I suspect you're searching on GitHub (which excludes large files). – jtgrassie♦ Sep 9 '20 at 15:24

I can't invoke any MMS command via RPC, I tried "mms", "mms init", etc. I was referring to RPC calls mentioning MMS, apparently it is not possible to invoke mms commands from an external third party interacting to monero-wallet-rpc – Anelito Sep 10 '20 at 9:05 Here's the disconnect, you want to use MMS directly, but it's used under the hood by the multisig command's, which are what are exposed -- it doesn't need talking to directly. – jtgrassie♦ Sep 10 '20 at 15:17

I need to run mms commands automatically, how would you do it? – Anelito Sep 10 '20 at 15:53

1 Answers1

1

monero-python package does not support mms at this time.

See discussion here: https://github.com/monero-ecosystem/monero-python/issues/45

t-900
  • 61
  • 2