all messages
by
Jörg Baach
—
last modified
Feb 19, 2010 07:29 PM
The messages from the protocol
all.txt
—
Plain Text,
5Kb
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

