namillum
Version:
Bubble Protocol SDK
82 lines (73 loc) • 4.57 kB
Markdown
id: rosetta-construction
title: Introduction
keywords:
- rosetta
- middleware
- exchanges
- zilliqa
- API
- contruction
description: Introduction
## Construction
Construction API enables developers to write to a blockchain (i.e. construct
transactions) in a standard format. Implementations are stateless and can
operate entirely offline, and support detached key generation and signing.
### Construction Flow
The construction flow is in this sequence:
1. [/construction/derive](rosetta-construction-derive.md)
2. [/construction/preprocess](rosetta-construction-preprocess.md)
3. [/construction/metadata](rosetta-construction-metadata.md)
4. [/construction/payloads](rosetta-construction-payload.md)
5. [/construction/parse](rosetta-construction-parse.md)
6. [/construction/combine](rosetta-construction-combine.md)
7. /construction/parse (to confirm correctness)
8. [/construction/hash](rosetta-construction-hash.md)
9. [/construction/submit](rosetta-construction-hash.md)
### Flow of Operations
```text
Caller (i.e. Coinbase) + Construction API Implementation
+-------------------------------------------------------------------------------------------+
|
Derive Address +----------------------------> /construction/derive
from Public Key |
|
X |
X Create Metadata Request +---------------------> /construction/preprocess
X (array of operations) | +
Get metadata needed X | |
to construct transaction X +-----------------------------------------------+
X v |
X Fetch Online Metadata +-----------------------> /construction/metadata (online)
X |
|
X |
X Construct Payloads to Sign +------------------> /construction/payloads
X (array of operations) | +
X | |
Create unsigned transaction X +------------------------------------------------+
X v |
X Parse Unsigned Transaction +------------------> /construction/parse
X to Confirm Correctness |
X |
|
X |
X Sign Payload(s) +-----------------------------> /construction/combine
X (using caller's own detached signer) | +
X | |
Create signed transaction X +-----------------------------------------------+
X v |
X Parse Signed Transaction +--------------------> /construction/parse
X to Confirm Correctness |
X |
|
X |
X Get hash of signed transaction +--------------> /construction/hash
Broadcast Signed Transaction X to monitor status |
X |
X Submit Transaction +--------------------------> /construction/submit (online)
X |
+
```