Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Members / jhb / all messages

all messages

The messages from the protocol

Plain Text icon all.txt — Plain Text, 5 kB (5951 bytes)

File contents

Messages between any two parties of the network


Wallet & Wallet         Wallet & IS 

=================       =====================
= SUM           =       = MINT_KEY          =
= SPEND_TOKEN   =       = TRANSFER_TOKEN    =
=================       =====================
                        
    Prior: All messages between two entities that can occur directly before this one
    Follow: All messages between two entities that can occur directly after this one
    
    Hello is the initial handshake between two entities or the state after a Goodbye
    Goodbye is the end of a transaction, although also a Hello for a new transaction

============================================================================


********************
* Wallet to Wallet *
********************

=================
= SUM           =
= SPEND_TOKEN   =
=================

SUM
-----

A:
  SUM_ANNOUNCE  #base64(transaction_id)
                standard identifier
                currency identifier
                amount
                target (what exactly is the target? Should it be base64 encoded?)
        Prior:  Hello
        Follow: SUM_ACCEPT 
                SUM_REJECT

B:
  SUM_ACCEPT
        Prior:  SUM_ANNOUNCE
        Follow: TOKEN_REDEEM
                        
  SUM_REJECT
        Prior:  SUM_ANNOUNCE
        Follow: Goodbye
                        


SPEND_TOKEN
-----------

A:
  SPEND_TOKEN_REQUEST   list(token)
        Prior:  SUM_ACCEPT
        Follow: TOKEN_REJECT
                TOKEN_ACCEPT

B:
  SPEND_TOKEN_REJECT    type
                        list(detail-reason) | list()
                    Reasons:
                        'Rejected'
                        'Invalid token'
                        'See detail':
                            'None'
                            All options of Reason, except 'See detail'
        Prior:  TOKEN_REDEEM
        Follow: TOKEN_REDEEM
                Goodbye

  SPEND_TOKEN_ACCEPT
        Prior:  TOKEN_REDEEM
        Follow: Goodbye





============================================================================


****************
* Wallet to IS *
****************

=====================
= MINT_KEY          =
= TRANSFER_TOKEN    =
=====================

MINT_KEY
-----------

Wallet:
  MINT_KEY_FETCH_DENOMINATION   list(denomination, ...) TIME(time)|'0'
    Prior:  Hello
    Follow: MINT_KEY_PASS
            MINT_KEY_FAILURE
            
  MINT_KEY_FETCH_KEYID  list(#base64(key_identifier), ...)
    Prior:  Hello
    Follow: MINT_KEY_PASS
            MINT_KEY_FAILURE

IS:
  MINT_KEY_PASS     list(keycertificate, ...)
    Prior:  MINT_KEY_FETCH_DENOMINATION
            MINT_KEY_FETCH_KEYID
    Follow: Goodbye
            
  MINT_KEY_FAILURE  list(([denomination|#base64(key_identifier)], reason), ...)
                Reasons:
                    Unknown denomination
                    Unknown key_identifier
                    Revoked key_identifier
    Prior:  MINT_KEY_FETCH_DENOMINATION
            MINT_KEY_FETCH_KEYID
    Follow: Goodbye
  


TRANSFER_TOKEN
--------------

Wallet:
  TRANSFER_TOKEN_REQUEST    #base64(transaction_id)
                            target
                            list((#base64(key_identifier), list(blind,...)),...)
                            list(token,...)
                            list(('type', type), (option, value),...)
                Types:
                    'redeem'
                    'exchange'
                    'mint'
    Prior:  Hello
    Follow: TRANSFER_TOKEN_REJECT
            TRANSFER_TOKEN_ACCEPT
            TRANSFER_TOKEN_DELAY
            
  TRANSFER_TOKEN_RESUME     #base64(transaction_id)
    Prior:  Hello
    Follow: TRANSFER_TOKEN_REJECT
            TRANSFER_TOKEN_ACCEPT
            TRANSFER_TOKEN_DELAY
                
IS:
  TRANSFER_TOKEN_REJECT     #base64(transaction_id)
                            type
                            reason
                            list(reason-detail)|list()
                Types:
                    'Generic'
                    'Option'
                    'Target'
                    'Token'
                    'Blind'
                Reasons:
                    Generic:
                        'Rejected'
                    Option:
                        'Rejected'
                        'Unknown option'
                        'Incorrect type'
                        'See detail':
                            'None'
                            All options of Reason, except 'See detail'
                    Target:
                        'Rejected'
                        'IS-Reject' + Issuer specific rejection string
                    Token:
                        'Rejected'
                        'Invalid key_identifier'
                        'Revoked key'
                        'Invalid token'
                        'Token already spent'
                        'See detail':
                            'None'
                            All options of Reason, except 'See detail'
                    Blind:
                        'Rejected'
                        'Invalid key_identifier'
                        'Key too soon'
                        'Key expired'
                        'Revoked key'
                        'Unable to sign'
                        'See detail':
                            'None'
                            All options of Reason, except 'See detail'
    Prior:  TRANSFER_TOKEN_REQUEST
            TRANSFER_TOKEN_RESUME
    Follow: Goodbye
    
  TRANSFER_TOKEN_ACCEPT     #base64(transaction_id)
                            list(signed_blind,...)
    Prior:  TRANSFER_TOKEN_REQUEST
            TRANSFER_TOKEN_RESUME
    Follow: Goodbye
    
  TRANSFER_TOKEN_DELAY  #base64(transaction_id) "Message"
                    Messages:
                        **Haven't done this yet**
    Prior:  TRANSFER_TOKEN_REQUEST
            TRANSFER_TOKEN_RESUME
    Follow: Goodbye