Multisignature server

mssrv.dump(network, tx)[source]

Add a transaction into registry. senderPublicKey field is used to create registry if it does not exist.

Parameters:
  • network (str) – blockchain name
  • tx (dict or dposlib.blockchain.Transaction) – transaction to store
mssrv.getAll(network)[source]

GET /multisignature/{network} endpoint. Return all public keys issuing multisignature transactions.

Parameters:network (str) – blockchain network name
Returns:all registries
Return type:dict
mssrv.getSerial(network, ms_publicKey, txid)[source]

GET /multisignature/{network}/{ms_publicKey}/{txid}/serial endpoint. Return specific pending transaction serial from a specific public key.

mssrv.getTransaction(network, ms_publicKey, txid)[source]

GET /multisignature/{network}/{ms_publicKey}/{txid} endpoint. Return specific pending transaction from a specific public key.

mssrv.getWallet(network, ms_publicKey)[source]

GET /multisignature/{network}/{ms_publicKey} endpoint. Return all pending transactions issued by a specific public key.

mssrv.identify(tx)[source]

Identify a transaction.

Parameters:tx (dict or dposlib.blockchain.Transaction) – transaction to identify
Returns:transaction id used by registries
Return type:str
mssrv.load(network, ms_publicKey, txid)[source]

Load a transaction from a specific registry.

Parameters:
  • network (str) – blockchain name
  • ms_publicKey (str) – encoded-compresed public key as hex string
  • txid (str) – transaction id
Returns:

transaction data

Return type:

dict

mssrv.pop(network, tx)[source]

Remove a transaction from registry. Wallet registry is removed if empty.

Parameters:
  • network (str) – blockchain name
  • publicKey (str) – encoded-compresed public key as hex string
mssrv.postNewTransactions(network)[source]

POST /multisignature/{network}/post endpoint. Post transaction from multisignature wallet to be remotly signed:

data = {"transactions": [tx1, tx2, ... txi ..., txn]}

See putSignature().

mssrv.putSignature(network, ms_publicKey)[source]

PUT /multisignature/{network}/{ms_publicKey}/put endpoint. Add signature to a pending transaction:

data = {
    "info": {
        "id": pending_transaction_id,
        "signature": signature,
        "publicKey": associated_public_key
    } [ + {
        "fee": optional_fee_value_to_use
    } ]
}
mssrv.registerWallet(network)[source]

POST /multisignature/{network}/create endpoint. Register as multisignature wallet:

data = {
    "info": {
        "senderPublicKey": wallet_public_key_issuing_transaction,
        "min": minimum_signature_required,
        "publicKeys": public_key_list
    }
}

Once created on server, registration transaction have to be remotly signed. See putSignature().