This page documents the services as defined in our protobuf specifications.
#
attrf.AccountName | Description | Type |
---|---|---|
Address | string | |
PayProviderID | int32 | |
ReceiveProviderID | int32 | |
ReceiveWalletInfo | string | |
CreatedAt | string | |
PayProvider | attrf.PaymentProvider | |
ReceiveProvider | attrf.PaymentProvider | |
Signature | bytes |
#
attrf.AccountInfoName | Description | Type |
---|---|---|
Address | string | |
PayProviderID | int32 | |
ReceiveProviderID | int32 | |
ReceiveWalletInfo | string | |
CreatedAt | string | |
PayProvider | attrf.PaymentProviderInfo | |
ReceiveProvider | attrf.PaymentProviderInfo | |
Signature | bytes |
#
attrf.CompensationName | Description | Type |
---|---|---|
Beneficiary | string | |
Value | string | |
Currency | string | |
AttrValue | string |
#
attrf.DelegatedOpName | Description | Type |
---|---|---|
Hash | string | |
Root | string | |
Agreement | string | |
RootCreatedAt | int64 | |
SignedDelegatedOperation | core.SignedDelegatedOperation | |
SignedDelegatedOperationBlob | internal field containt proto marshal blob of DelegatedOperation, could be empty | bytes |
Compensation | attrf.Compensation | |
StatusID | Available : 1-Pending, 2-Published, 3-Publish_Failed, 4-Confirmed, 5-Confirmed_Failed, 6-Paying, 7-Paid, 8-Paid_Failed | uint32 |
CreatedBy | Address of creator of this delegated op | string |
CreatedAt | Optional, this often autogenerated when saving to db | int64 |
Fee | string |
#
attrf.DelegatedOperationReceiptName | Description | Type |
---|---|---|
DopHash | string | |
ReceiptID | string |
#
attrf.DelegatedOperationUpdateRequestName | Description | Type |
---|---|---|
DopHash | string | |
UpdateAttrValue | bool | |
AttrValue | string | |
UpdateStatus | bool | |
Status | uint32 | |
UpdateFee | bool | |
Fee | string |
#
attrf.GetAccountInfosRequestName | Description | Type |
---|---|---|
Addresses | []string |
#
attrf.GetAccountInfosResponseName | Description | Type |
---|---|---|
Accounts | []attrf.AccountInfo |
#
attrf.GetAggregatedRootRequestName | Description | Type |
---|---|---|
Agreements | []string | |
FromTime | Filter `DelegatedOperations.RootCreatedAt` window begin, end | int64 |
ToTime | int64 | |
ModifiedFrom | Filter `DelegatedOperations.ModifiedAt` window begin, end | int64 |
ModifiedTo | int64 |
#
attrf.GetAggregatedRootResponseName | Description | Type |
---|---|---|
Items | []attrf.AggregatedItem |
#
attrf.GetPaymenProviderResponseName | Description | Type |
---|---|---|
Providers | []attrf.PaymentProviderInfo |
#
attrf.GetRootsRequestName | Description | Type |
---|---|---|
StatusID | uint32 | |
RootAddresses | []string | |
DopHashes | []string | |
Offset | uint64 | |
Limit | uint64 |
#
attrf.GetRootsResponseName | Description | Type |
---|---|---|
Roots | []attrf.Root | |
Offset | uint64 | |
Limit | uint64 | |
Total | uint64 |
#
attrf.OrderName | Description | Type |
---|---|---|
ID | string | |
Intent | string | |
Status | string | |
RedirectURL | string | |
Items | []attrf.OrderItem |
#
attrf.OrderRootsName | Description | Type |
---|---|---|
OrderID | string | |
Roots | []string |
#
attrf.PaymentProviderName | Description | Type |
---|---|---|
ID | int32 | |
Name | string | |
Description | string | |
Fee | string |
#
attrf.PaymentProviderInfoName | Description | Type |
---|---|---|
ID | int32 | |
Name | string | |
Description | string | |
Fee | string |
#
attrf.PayoutItemName | Description | Type |
---|---|---|
Account | attrf.Account | |
Value | string | |
Currency | string | |
Note | string |
#
attrf.PayoutReponseName | Description | Type |
---|---|---|
ID | string |
#
attrf.PayoutRequestName | Description | Type |
---|---|---|
EmailSubject | string | |
Items | []attrf.PayoutItem |
#
attrf.PostDelegatedOperationsReceiptRequestName | Description | Type |
---|---|---|
DopHashes | []string | |
ReceiptID | string |
#
attrf.PostDelegatedOperationsRequestName | Description | Type |
---|---|---|
SignedDelegatedOperations | []core.SignedDelegatedOperation | |
OrderID | Paypal orderID, the order of compensation of delegated operation, | string |
#
attrf.PostMakePayoutResponseName | Description | Type |
---|---|---|
Payouts | []attrf.PayoutItem |
#
attrf.PostMakePayoutsRequestName | Description | Type |
---|---|---|
TxHashes | List of confirmed transaction (that include delegated operation and claim operation) hash to be making payment | []string |
#
attrf.PostOrderRequestName | Description | Type |
---|---|---|
RootAddresses | We could use address as string here, attrf should be separated with core, string mean we don't need custom marshaler, would be simpler | []string |
#
attrf.PostOrderResponseName | Description | Type |
---|---|---|
OrderID | string | |
OrderStatus | string | |
ApproveURL | string |
#
attrf.PostPublishTransactionRequestName | Description | Type |
---|---|---|
Transactions | []core.Transaction |
#
attrf.PostPublishTransactionResponseName | Description | Type |
---|---|---|
FailedTransactions | []attrf.PublishFailedTransaction |
#
attrf.PutDelegatedOperationsStatusRequestName | Description | Type |
---|---|---|
DopHashes | []string | |
StatusID | uint32 |
#
attrf.QueryContextName | Description | Type |
---|---|---|
UserAddress | string | |
IsFacilitator | bool |
#
attrf.RootName | Description | Type |
---|---|---|
RootAddr | string | |
Agreement | string | |
Action | string | |
CreatedAt | int64 | |
Compensations | []attrf.Compensation |
#
attrf.TransactionName | Description | Type |
---|---|---|
Hash | string | |
StatusID | Available : 1-Pending, 2-Published, 3-Publish_Failed, 4-Confirmed, 5-Confirmed_Failed | int32 |
ErrorMessage | string | |
DelegatedOp | attrf.DelegatedOp |
#
connectors.AccountResponseGET /attrace/v1/account
200: success
500: when node is not yet configured
Name | Description | Type |
---|---|---|
Account | The account which has admin permissions (so the monitor can show this in the UI) | string |
#
connectors.ConfigReponseGET /attrace/v1/config
Auth: monitor
Name | Description | Type |
---|---|---|
ClickoutPath | The url part which handles clickouts | string |
Account | Admin account configured | string |
Network | The network this connector is talking to | string |
MasterTagUrl | The URL where the master tag is available | string |
NetworkBroadcastStrategy | How the connector is broadcasting transactions to the network Options:
| string |
TrackingStrategy | How the connector is setting cookies Options:
| string |
ConversionStrategy | How the integration tracks conversions Options:
| string |
ProfilingLevel | Additional tracing level for performance Options:
| string |
Mode | Similar like NODE_ENV usage in node/webpack projects. Options:
Default value when deployed should be "production". | string |
ProtocolMode | Some deployments don't support PATCH/DELETE/POST or rewrite requests to GETs Configuring this allows to bypass these systems. A plugin should do all efforts to avoid this. Options:
| string |
ApiBasePath | API base path Default base path is /attrace/v1, changing this to /attr/v2 would result in enabling endpoint like /attr/v2/status. | string |
#
connectors.ConfigureAccountRequestPOST /attrace/v1/account
Configure an admin account
Only works when the connector is not already configured
Auth: none, request only works once on startup for initial configuration
200: success
409: already configured
Name | Description | Type |
---|---|---|
Account | The admin account which is allowed to modify the connector | string |
#
connectors.CreateActionRequestName | Description | Type |
---|---|---|
Agreement | base32 encoded agreement address | string |
Action | action to execute on the agreement, eg: sale | string |
ParentRoot | optional base32 encoded parent root address | string |
Param | optional action param to be passed to the network. Can occur multiple times, added to the transaction in order how it appears on the url. | []string |
#
connectors.CreateMonitorRequestPOST /attrace/v1/monitors
Discovers monitor address from the passed monitor URL
Adds the monitor address in the auth table (so monitor-auth requests are allowed by this account)
Name | Description | Type |
---|---|---|
DiscoveryUrl | The monitor URL, on this URL /discover can be called and MonitorDiscoverResponse will be returned | string |
Account | If set, the discovery can be ignored | string |
#
connectors.DeleteIntegrationConfigRequestName | Description | Type |
---|---|---|
UniqueId | agreement_address + '-' + delegate_of_address | string |
#
connectors.DeleteMonitorRequestName | Description | Type |
---|---|---|
Account | Monitor account to remove | string |
#
connectors.ErrorResponseJSON model which can be returned on errors
Name | Description | Type |
---|---|---|
Error | error message | string |
Code | optional connector-specific error code | int64 |
Trace | optional JSON encoded trace data of this error | string |
#
connectors.FallbackRequestPOST /attrace/v1/req
Workaround request for environments which have weird caching plugins installed.
Important to remember that using this interface will leak all bodies into the cache.
A much much better approach is to whitelist the /attrace/v1/* in the caching module and not use this.
Name | Description | Type |
---|---|---|
Method | GET, POST, PATCH, DELETE, … | string |
Path | HTTP path | string |
QueryParams | url-encoded query params | string |
Body | JSON-encoded body of the original request | string |
#
connectors.GetIntegrationConfigsRequestName | Description | Type |
---|---|---|
Next | optional page offset value from the previous response | string |
#
connectors.GetTransactionsRequestName | Description | Type |
---|---|---|
From | UTC timestamp millis | uint64 |
To | UTC timestamp millis | uint64 |
Limit | optional, default 100 | uint64 |
Next | optional page offset value from the previous response | string |
#
connectors.IntegrationConfigsResponseGET /attrace/v1/integrationconfigs
Auth: monitor
Query arguments:
- Next: optional next paging value from the previous response
Name | Description | Type |
---|---|---|
Items | Configs | []integrations.IntegrationConfig |
Next | The next offset value to pass along, if any | string |
#
connectors.ModifyConfigRequestPATCH /attrace/v1/config
Modify a config setting
Auth: admin
Name | Description | Type |
---|---|---|
Key | Config key | string |
Value | Value of this config | string |
Reset | True when key override should be reset to it's default value | bool |
#
connectors.MonitorDiscoverResponse! ONLY FOR THE MONITOR SERVICE, not the connectors!
GET /discover
Name | Description | Type |
---|---|---|
Account | The monitor service account, to be granted access to do monitor requests. | string |
#
connectors.MonitorsResponseGET /attrace/v1/monitors
Send back list of accounts which have monitor access and their respective URLs
Auth: monitor
Name | Description | Type |
---|---|---|
Monitors | []connectors.Monitor |
#
connectors.ResetRequestPOST /attrace/v1/reset
Reset a storage completely (drop table and create new)
Auth: admin
Name | Description | Type |
---|---|---|
Storage | Storage, can be Config, Transaction, IntegrationConfig, All | string |
#
connectors.StatusResponseGET /attrace/v1/status
Auth: monitor
Name | Description | Type |
---|---|---|
Account | string | |
StoreType | Configured with storage | string |
Arch | Sytem architecture | string |
Language | Runtime language | string |
LanguageVersion | Runtime language version | string |
Platform | Platform, for platform-specific connectors | string |
PlatformVersion | Platform version | string |
SystemTime | Request system time in millis | int64 |
PluginProps | JSON encoded plugin-specific extra props. | string |
Version | Version of the connector | string |
#
connectors.TransactionGET /attrace/v1/transactions
Get transactions ordered by time desc
Auth: monitor
Query arguments:
- From: utc timestamp millis
- To: utc timestamp millis
- Limit: optional, default 100
- Next: optional next paging value from the previous response
Name | Description | Type |
---|---|---|
Key | Hash | string |
Value | base64 encoded protobuf binary tx | string |
Metadata | JSON encoded private metadata of this transaction | string |
Error | Error information of last try | string |
Retries | Amount of publish to network retries were tried | int32 |
Synced | Flag if this transaction is published | int32 |
Ts | Timestamp from the transaction | int64 |
Id | Int field, can be set to an internal ID. Has no further use. | string |
#
connectors.TransactionsResponseName | Description | Type |
---|---|---|
Items | Transactions | []connectors.Transaction |
Next | The next offset value to pass along, if any | string |
#
contractprotocol.ContractInfoSimple data model for exposing the internal contracts over RPC
Name | Description | Type |
---|---|---|
Id | string | |
Version | string | |
Description | string |
#
contractprotocol.ListMapName | Description | Type |
---|---|---|
Values | []contractprotocol.MapValue |
#
contractprotocol.MapValueName | Description | Type |
---|---|---|
Key | int32 | |
Value | contractprotocol.Value |
#
contractprotocol.ValueSimple value type like google type for dynamic values in the contract state.
Contracts can use internally whatever they want to store data efficiently.ly.
Network should avoid contracts with inefficient data storage -- on which in later stage we can do dynamic compensation, if we want.. it's not the goal to rebuild ethereum.
The logic is expected to know what fields to query and requires the contracts to track int32 mappings internally.
When the value is null, the recommended workflow is to delete the value from the state so space is freed.
A value available on the state can be assumed to be set.
If somebody wants to track a null field, which happens less than setting a value, they can store a secondary null marker value.
Name | Description | Type |
---|---|---|
Str | string | |
I32 | int32 | |
U32 | uint32 | |
I64 | int64 | |
U64 | uint64 | |
Bool | bool | |
Blob | bytes | |
ListValues | List of multiple values. | []contractprotocol.Value |
ListMap | Int key:val lookups, list-based to have stable serializer. | contractprotocol.ListMap |
#
core.AccountTransactionCountName | Description | Type |
---|---|---|
TxCount | uint64 | |
Block | bytes | |
BlockSequence | bytes | |
AccountAddress | bytes |
#
core.AccountTransactionCountRequestName | Description | Type |
---|---|---|
AccountAddress | The address which we want to request | bytes |
#
core.ActionCallA single state-change call on a dynamic contract
Name | Description | Type |
---|---|---|
Action | What method to call. Full method name for clarity, not a hash of the name. Eg: Create, Sale, … | string |
Context | An optional list of context values which can be passed around with method calls. | []core.ContextValue |
Params | Parameters to the action. | []contractprotocol.Value |
NamedParams | Named params, indexable by the contract. | contractprotocol.ListMap |
#
core.AddressMsgName | Description | Type |
---|---|---|
AddressTypeValue | uint32 | |
EncodedValue | string |
#
core.AddressStatesRequestName | Description | Type |
---|---|---|
Hash | Use string because our gate way support in query param, custom marshaller not worked for query param | string |
Hashes | Support multiple hashes | []string |
#
core.AddressStatesResponseName | Description | Type |
---|---|---|
AddressStates | []core.AddressState |
#
core.AirportAirport info
Name | Description | Type |
---|---|---|
iata | lowercase to work with json | string |
lat | double | |
lon | double |
#
core.AnnotatedTransactionName | Description | Type |
---|---|---|
Transaction | core.Transaction | |
Receipt | core.TransactionReceipt | |
BlockHash | bytes | |
BlockSequence | uint64 |
#
core.AuthResponseName | Description | Type |
---|---|---|
Challenge | Challenge the signature relates to | bytes |
Signature | Signature of the challenge | bytes |
#
core.BlockName | Description | Type |
---|---|---|
Header | Block metadata header | core.BlockHeader |
Transactions | Transactions processed in this block. | []core.Transaction |
Signatures | Signature data of all transactions | []core.BlockTransactionSignatures |
Receipts | Transaction receipts | []core.TransactionReceipt |
TracingContext | Optional tracing info, use to carry tracing context to another node | bytes |
#
core.BlockAnnotationsThe BlockAnnotations is a structure to support properties to share between multiple witnesses, which are not required to be stored.
Having them on the block header shows that 2f+1 witnesses agree on the data.
Nodes can ignore validation of these optionals when syncing and only need to verify them when in hot consensus.
Initial use case is gossipping failed transactions and making it possible to verify that information.
Name | Description | Type |
---|---|---|
FailedTransactions | Failed transactions which can be removed from the mempools on the network. | []core.EvaluatedTransaction |
#
core.BlockBySequenceRequestName | Description | Type |
---|---|---|
Sequence | uint64 |
#
core.BlockBySequenceResponseName | Description | Type |
---|---|---|
Block | core.Block |
#
core.BlockHeaderBlockHeader contains all block metadata to allow verification
Header is sent once block is completed and confirms a fully generated block (who's chunks have already been broadcasted)
Name | Description | Type |
---|---|---|
Sequence | Ever-increasing number of this block in the chain. | uint64 |
Timestamp | Timestamp millis this block was generated | uint64 |
Witness | Address of the witness that generated this block. | bytes |
Hash | Hash of this block | bytes |
PreviousHash | Hash of the previous block. | bytes |
MerkleRoot | Merke root of transactions and signatures. | bytes |
Signature | Signature by the producer of this block. | bytes |
Fees | Total amount of fees collected for processing the embedded transactions | bytes |
ReceiptsRoot | Merkle root after processing the receipts | bytes |
AnnotationsRoot | Merkle root of the annotation info we share with the other witnesses. | bytes |
#
core.BlockTransactionSignaturesName | Description | Type |
---|---|---|
Signature | Transaction signature | bytes |
#
core.BlockchainHashesLightweight model for client/channel validation.
Can send up to 65k block hashes at a time (4 MB).
Name | Description | Type |
---|---|---|
Confirmed | Confirmed hashes are to be processed first. | []bytes |
Unconfirmed | Unconfirmed chain are not yet consolidated behind a last consensus block. | []bytes |
#
core.BlocksRequestName | Description | Type |
---|---|---|
Hashes | []bytes |
#
core.CachedBlockStructure for sharing blocks during consensus and sync amongst the witnesses.
We want to avoid serialization overhead and allow witnesses to share bytes streamed directly from disk.
Name | Description | Type |
---|---|---|
RawBlock | bytes | |
RawBlockAnnotations | Optional block annotations | bytes |
#
core.ChallengeInfoName | Description | Type |
---|---|---|
PeerAddr | Address of connecting client | bytes |
TTL | TTL of the challenge | uint64 |
#
core.ChallengeRequestName | Description | Type |
---|---|---|
PeerAddr | Address of connecting client | bytes |
Challenge | bytes |
#
core.ChallengeResponseName | Description | Type |
---|---|---|
Challenge | bytes | |
SignedChallenge | bytes |
#
core.ChannelStatusName | Description | Type |
---|---|---|
ChannelAddress | bytes | |
peers | []core.ChannelPeerStatus |
#
core.CommitName | Description | Type |
---|---|---|
BlockHash | bytes | |
PeerAddress | bytes | |
PeerSignature | bytes | |
ProducerAddress | bytes | |
ProducerSignature | bytes |
#
core.CompensationName | Description | Type |
---|---|---|
TxHash | bytes | |
TxOp | uint64 | |
Beneficiary | bytes | |
Value | core.CompensationValue |
#
core.CompensationValueName | Description | Type |
---|---|---|
Value | Encoded as bigint big endian
| bytes |
ConversionValue | Encoded as bigint big endian. Store the original value defined in the contract.
| bytes |
ConversionCurrency | Deprecated. Keep this field to avoid breaking when validating block. | string |
ConversionRate | Conversion rate from ConversionValue to ATTR token. Encoded as bigint big endian as ACES values (6 decimal supported) | bytes |
#
core.ConsensusEventName | Description | Type |
---|---|---|
PrePrepare | core.PrePrepare | |
Prepare | core.Prepare | |
Commit | core.Commit | |
ViewChange | core.ViewChange | |
NewView | core.View |
#
core.ContextValueName | Description | Type |
---|---|---|
Name | Property name, eg: UserAgent | string |
Value | The actual value | bytes |
ValueType | Value serializer | int32 |
#
core.DelegatedOperationName | Description | Type |
---|---|---|
Operation | Operation to be executed by delegatee | core.Operation |
Account | Owner address of operation. The one who sign the DelegatedOperation. This could be account address or operational key address. | bytes |
Delegatee | Address of delegatee | bytes |
#
core.DiscoveryManifestName | Description | Type |
---|---|---|
SnapshotTime | uint64 | |
Witnesses | []core.PeerInfo | |
Airports | List of current airports | []core.Airport |
#
core.EdgeLocationName | Description | Type |
---|---|---|
Latitude | Latitude indication where this node is running (x 100000) | int32 |
Longitude | Longitude indicatio nwhere this node is running (x 100000) | int32 |
NearestSubdivision | Nearest subdivision within a country (state/province), by distance to center of the subdivision. | string |
#
core.EvaluatedTransactionA structure to share a transaction with it's execution receipt
Name | Description | Type |
---|---|---|
StagePosition | Position in the block transactions where we tried staging this transaction (and failed) | uint32 |
Transaction | The original transaction | core.Transaction |
Receipt | The receipt detailing the failure reason | core.TransactionReceipt |
#
core.FullNodeDataName | Description | Type |
---|---|---|
PeerInfo | core.PeerInfo | |
Gossip | core.Gossip | |
BlockHeader | core.BlockHeader | |
Transaction | core.Transaction |
#
core.GetAccountBlockHashesRequestName | Description | Type |
---|---|---|
AccountAddress | string | |
FromBlock | uint64 | |
ToBlock | uint64 | |
Limit | uint64 | |
GetLatest | bool |
#
core.GetAccountBlockHashesResponseName | Description | Type |
---|---|---|
BlockHashes | []bytes |
#
core.GetAccountTokenRateResponseName | Description | Type |
---|---|---|
Currency | Currency symbol | string |
Rate | Rate of currency by ratio 1 / 1000000 | uint64 |
#
core.GetAccountTokenRatesRequestName | Description | Type |
---|---|---|
AccountAddress | string |
#
core.GetAccountTokenRatesResponseName | Description | Type |
---|---|---|
UpdateTime | Lastest update of account token rates (UNIX timestamp) | uint64 |
Rates | Rates by currency, notes: rate have a ratio 1 / 1000000 with 1 currency | []core.GetAccountTokenRateResponse |
#
core.GetActionsByParentRootRequestName | Description | Type |
---|---|---|
Address | string | |
Timezone | string | |
Actions | List of included actions, if nothing passed, fetching all | []string |
#
core.GetActionsByParentRootResponseName | Description | Type |
---|---|---|
Actions | []core.Action | |
ParentRoot | core.Action |
#
core.GetAggregatedRootDataRequestName | Description | Type |
---|---|---|
Agreements | List agreement address to query, base32 encoded string | []string |
FromTime | UTC time millis search window begin | int64 |
ToTime | UTC time millis search window end, exclusive. | int64 |
#
core.GetAgreementsRequestName | Description | Type |
---|---|---|
Party | bytes |
#
core.GetAgreementsResponseName | Description | Type |
---|---|---|
Agreements | []core.Agreement |
#
core.GetCompensationStatsRequestName | Description | Type |
---|---|---|
AccountAddress | The user account address to query, base32 encoded string | string |
FromTime | UTC time millis search window begin | int64 |
ToTime | UTC time millis search window end, exclusive. | int64 |
#
core.GetContractsRequestName | Description | Type |
---|
#
core.GetIdxAccountTokenRatesRequestName | Description | Type |
---|---|---|
Account | string |
#
core.GetLatestRootRequestName | Description | Type |
---|---|---|
Agreements | Agreement address to include, as base32 encoded strings | []string |
Timezone | Timezone for filter, used to calculate time when filter on specific timezone | string |
Actions | Type of root action, can be click, lead, sale | []string |
Limit | Amount of requested record | int64 |
Statuses | List action statuses being required | []string |
#
core.GetOperationHistoryRequestName | Description | Type |
---|---|---|
Agreements | Agreement addresses to include, as base32 encoded strings | []string |
FromTime | UTC time millis search window begin | int64 |
ToTime | UTC time millis search window end, exclusive. | int64 |
Timezone | Timezone for filter, used to calculate time when filter on specific timezone | string |
TimeAggregation | What time grouping, default is day. | string |
Operations | Optional list of operation types to include. Eg: root, actioncall. | []string |
#
core.GetRootHistoryRequestName | Description | Type |
---|---|---|
Address | string | |
Timezone | string |
#
core.GetRootsByAddressesRequestName | Description | Type |
---|---|---|
Addresses | []string | |
Currencies | Type of fiat money | []string |
#
core.GetRootsRequestName | Description | Type |
---|---|---|
Agreements | Agreement address to include, as base32 encoded strings | []string |
Timezone | Timezone for filter, used to calculate time when filter on specific timezone | string |
Actions | Type of root action, can be click, lead, sale | []string |
Limit | Amount of requested record | int64 |
Offset | Amount of skipped record | int64 |
Statuses | List action statuses being required | []string |
#
core.GetSupportedCurrenciesResponseName | Description | Type |
---|---|---|
Currencies | []core.Currency |
#
core.GetViewsRequestName | Description | Type |
---|---|---|
ViewOffsetID | View should be higher than | uint64 |
BlockGTEOffsetSeq | Optional optimization >= this block offset (views can base off the same block) | uint64 |
#
core.GossipPush of info from one node to another
Name | Description | Type |
---|---|---|
Time | Source peer time when the message was generated | uint64 |
Peers | List of all known witnesses + info | []core.PeerInfo |
#
core.HandleConsensusEventsRequestName | Description | Type |
---|---|---|
Events | []core.ConsensusEvent |
#
core.HashMessageName | Description | Type |
---|---|---|
Hash | bytes |
#
core.HashQueryParamName | Description | Type |
---|---|---|
Hash | string |
#
core.HotConsensusDebugResponseName | Description | Type |
---|---|---|
LastCommitBlock | core.BlockHeader | |
Phase | int64 | |
Session | core.ConsensusSession | |
BlocksEvents | []string | |
Actions | []string |
#
core.LatestBlocksRequestName | Description | Type |
---|---|---|
Sequence | uint64 | |
Limit | uint64 |
#
core.LatestBlocksResponseName | Description | Type |
---|---|---|
Blocks | []core.LatestBlock |
#
core.LatestRootResponseName | Description | Type |
---|---|---|
Sequence | Sequence indicaate a package number sent through ws | int64 |
Roots | []core.Root | |
TotalRecord | The Amount of records in table roots, | int64 |
#
core.LatestTransactionsRequestName | Description | Type |
---|---|---|
Limit | uint64 |
#
core.LatestTransactionsResponseName | Description | Type |
---|---|---|
LatestTransactions | []core.LatestTransaction |
#
core.LimitName | Description | Type |
---|---|---|
Count | uint64 | |
StartingBlock | bytes | |
UntilBlock | Optional block after which the result will end | bytes |
#
core.MempoolInfoResponseName | Description | Type |
---|---|---|
Paging | core.Paging | |
PendingTransactionCount | int32 | |
PendingTransactions | []core.Transaction |
#
core.MultiHashQueryParamName | Description | Type |
---|---|---|
Hashes | []string |
#
core.NetworkStatusResponseName | Description | Type |
---|---|---|
Witnesses | []core.PeerInfo | |
Candidates | []core.PeerInfo | |
ConfirmedChainTip | core.BlockHeader |
#
core.NodeStatusResponseName | Description | Type |
---|---|---|
Witness | bool | |
Candidate | bool | |
ConfirmedChainTip | core.BlockHeader | |
PeerAddress | string | |
LagInSec | uint64 |
#
core.OperationIndividual operations
A transaction can have many (eg: distribute value to multiple accounts from one account; or add 100 roots at once)
Name | Description | Type |
---|---|---|
Value | The actual operation | core.OperationValue |
SecureVerifyHashes | Hashes for verifying the secure actions in the channels before executing them. | []bytes |
#
core.OperationActionsName | Description | Type |
---|---|---|
RootActions | Root Actions which can be verified against Operation.secureHashes | []core.ActionCall |
#
core.OperationAssignTokenLeaseThis will allow another party to consume a specific amount of tokens from another account.
This is not locking the tokens on the network, it allows a contract to consume tokens from another account's balance for network operation tasks.
If there is an outstanding lease, the amounts are summed and available immediately.
Name | Description | Type |
---|---|---|
LeaseValue | The amount to add to the lease | bytes |
Provider | The party who is leasing (and is required to have this balance) | bytes |
Beneficiary | Who can consume the leased tokens | bytes |
#
core.OperationChangeWitnessCandidacyCreated by a peer when they are up for election
The candidate should have 1000 ATTR, which will be locked
Name | Description | Type |
---|---|---|
Candidate | Address of the candidate | bytes |
UpForElection | Set to true, if candidate is up for election | bool |
#
core.OperationClaimRootCompensationOperationClaimRootCompensation would sent ATTR from SourceAddress to Facilitator to receive fiat money
NOTE: Get value need to claim from rootState.Root.Compensation. This would ONLY work when this op in the same tx that have compensation
Name | Description | Type |
---|---|---|
Root | Root address which makes the compensation | bytes |
SourceAddress | SourceAddress owner of the compensation | bytes |
Facilitator | Address of the facilitator would handle the compensation | bytes |
#
core.OperationCompensationCompact
Name | Description | Type |
---|---|---|
Beneficiary | Who receives the compensation, a member of the agreement. | uint32 |
Value | Encoded as bigint big endian
| bytes |
Currency | Deprecated. Keep this field to avoid breaking when validating block. | uint32 |
ConversionValue | Encoded as bigint big endian. Store the original value defined in the contract. | bytes |
ConversionCurrency | 1=USD, 2=EUR, … See currency.go#L21 | uint32 |
ConversionRate | Conversion rate from ConversionValue to ATTR token. Encoded as bigint big endian as ACES values (6 decimal supported) | bytes |
#
core.OperationConfirmAgreementThis will sign an pending agreement on the network.
Name | Description | Type |
---|---|---|
Agreement | Agreement which we confirm | bytes |
#
core.OperationCreateAgreementThis will create an agreement on the network.
Name | Description | Type |
---|---|---|
Parties | All involved parties, who all need to approve the contract to get it started. | []bytes |
ContractHash | Agreement contract bytecode verification hash. sha256(compiledWasmCode, hashNonce). | bytes |
ContractByteCode | Byte Code of the contract | bytes |
ConfirmationDueInHours | The amount of hours until unconfirmed agreement will be purged | int32 |
ContractId | Which contract is used from the contract library | string |
Arguments | Dynamic initialization arguments for the contract | contractprotocol.ListMap |
CompensationCurrency | Currency in which compensations are calculated. | uint32 |
#
core.OperationCreateRootRegister a root type, a piece of data which can be tracked over time and have state changes
The name comes from something which grows into different states over time.
Name | Description | Type |
---|---|---|
RootOwner | The creator defines this and ideally this is the pubkey of a unique keypair (or derived). | bytes |
Agreement | Agreement this root belongs to | bytes |
TTL | Field to control the amount of hours the network tracks this root. | uint32 |
SourceAccount | Source account generating the root (click, tap, trackable something) | bytes |
Allowance | Since the account who creates the root is currently paying for the processing, it's important they can set a limit how much work can be done. | bytes |
ActionCall | core.ActionCall | |
ParentRootAddress | bytes |
#
core.OperationModifyAccountAccessreplaces any previous access configuration for the targeted accounts + scopes
Name | Description | Type |
---|---|---|
BlockSequence | (Optional) After this block sequence, operational key will be revoked | uint64 |
GrantScope | core.AccessScope | |
RevokeScope | core.AccessScope |
#
core.OperationReceiptName | Description | Type |
---|---|---|
Fees | Amount of fees in ATTR consumed by processing this operation. | bytes |
FeeOwner | Optional field to indicate alternative fee owners. | bytes |
Compensations | Compensations generated by executing this operation | []core.OperationCompensation |
StateDeltas | State changes done during exeuction of this operation. | contractprotocol.ListMap |
#
core.OperationRevokeTokenLeaseThis will revoke any open token lease from one account to another with any remaining lease value, effective immidiately.
Name | Description | Type |
---|---|---|
Provider | The party who is leasing (and is required to have this balance) | bytes |
Beneficiary | Who can consume the tokens | bytes |
#
core.OperationRootActionCallName | Description | Type |
---|---|---|
RootAddress | The address of the root | bytes |
Agreement | Agreement which will process this. | bytes |
SourceAccount | Source account generating the action | bytes |
ActionCall | core.ActionCall |
#
core.OperationStakeStake (=vote) for a set of witnesses. This will replace any previous Stake operations you had active on the network.
This means "I want these candidates to become elected witnesses".
1 token Value == 1 vote.
Name | Description | Type |
---|---|---|
StakedValue | Total amount of value that gets staked; uint256 | bytes |
Candidates | The witnesses which will receive equal votes. | []bytes |
#
core.OperationTransferValueTransfer ATTR value in aces from account to another
This implies to origin address is allowed to send this amount
Name | Description | Type |
---|---|---|
FromAddr | TODO validate if this can be binary | bytes |
ToAddr | TODO validate if this can be binary | bytes |
Value | The value transferred; uint256 | bytes |
#
core.OperationUnstakeWhen the network accepts this release, the value will remain locked for a few days.
To change staked witnesses, another StakeWitness operation needs to be created.
Name | Description | Type |
---|---|---|
ReleaseValue | Amount of funds to be released. | bytes |
#
core.OperationUpdateAccountTokenRatesName | Description | Type |
---|---|---|
Time | time when operation generated | uint64 |
AccountAddress | SourcesAccount address will get update token rates | bytes |
Rates | rates list rate by given currency | []core.TokenRate |
#
core.OperationValueDifferent operations possible
Name | Description | Type |
---|---|---|
TransferValue | core.OperationTransferValue | |
ChangeWitnessCandidacy | core.OperationChangeWitnessCandidacy | |
Stake | core.OperationStake | |
Unstake | core.OperationUnstake | |
CreateAgreement | core.OperationCreateAgreement | |
ConfirmAgreement | core.OperationConfirmAgreement | |
CreateRoot | core.OperationCreateRoot | |
RootActionCall | core.OperationRootActionCall | |
AssignTokenLease | core.OperationAssignTokenLease | |
RevokeTokenLease | core.OperationRevokeTokenLease | |
UpdateAccountTokenRates | core.OperationUpdateAccountTokenRates | |
ModifyAccountAccess | core.OperationModifyAccountAccess | |
SignedDelegatedOperation | core.SignedDelegatedOperation | |
ClaimRootCompensation | core.OperationClaimRootCompensation |
#
core.OperationsSerialization helper
Name | Description | Type |
---|---|---|
Values | []core.Operation |
#
core.PagingName | Description | Type |
---|---|---|
Limit | int32 | |
Offset | int32 |
#
core.PeerInfoInfo broadcast
Name | Description | Type |
---|---|---|
Address | Address (key) of this node. | bytes |
Host | Advertised gRPC hostname. | string |
Port | Advertised gRPC port other peers can use to connect to this peer. | uint32 |
ApiHost | Optional additional API host override, if any | string |
ApiPort | Optional additional API port override, if any | uint32 |
Time | Local time in milliseconds when this peer info was generated. | uint64 |
Signature | Signature of above data, allowing this object to be gossipped and trusted. | bytes |
Location | Optional geo location indication where this peer is located, used for ping-less server selection | core.EdgeLocation |
#
core.PeerStatusUsed for attr-top, should be more generic.
Mixes in with peer status and node status info… pick one or query node status info as well.
Name | Description | Type |
---|---|---|
Type | string | |
Address | bytes | |
LastConfirmedBlock | core.BlockHeader | |
IsWitness | bool | |
IsCandidate | bool | |
LastError | core.PeerError | |
LastWarn | core.PeerError | |
ServerUpdateStreamCount | uint32 | |
Channels | []core.ChannelStatus | |
TxInTenSecCount | uint32 | |
TxCount | uint64 | |
Threads | uint64 | |
GitCommit | string | |
Version | string | |
CurrentRoundSession | string | |
CurrentProducer | string | |
NextProducer | string | |
LastViewHash | string | |
MempoolTxPendingCount | uint64 | |
MempoolTxUnconfirmedBlocksCount | uint64 | |
StartTime | uint64 | |
OpCount | uint64 |
#
core.PrePrepareName | Description | Type |
---|---|---|
Header | core.BlockHeader | |
ValidatorAddress | bytes | |
ValidatorSignature | bytes | |
PeerAddress | bytes | |
PeerSignature | bytes | |
View | core.View |
#
core.PrepareName | Description | Type |
---|---|---|
BlockHash | bytes | |
PeerAddress | bytes | |
PeerSignature | bytes | |
ProducerAddress | bytes | |
ProducerSignature | bytes |
#
core.RawDataName | Description | Type |
---|---|---|
Data | bytes |
#
core.RawDataListName | Description | Type |
---|---|---|
Datas | []core.RawData |
#
core.ResultSetDynamic nestable structure for all query resultset handling.
Name | Description | Type |
---|---|---|
Dimensions | Ordered list of field metadata for the results present in the result set. | []ResultSet.Dimension |
Metrics | Ordered list of field metadata for the results present in the result set. | []ResultSet.Metric |
Results | Data results | []ResultSet.Result |
#
core.SearchRequestName | Description | Type |
---|---|---|
Pattern | string | |
Limit | uint64 |
#
core.SearchResponseName | Description | Type |
---|---|---|
Results | []core.SearchResult |
#
core.SecureTransactionThe SecureTransaction is to be shared between parties directly over an encrypted channel.
Name | Description | Type |
---|---|---|
Transaction | The original transaction, which is also broadcasted to the public chain. | core.Transaction |
#
core.SignedDelegatedOperationName | Description | Type |
---|---|---|
DelegatedOperation | core.DelegatedOperation | |
Signature | Verify signature of DelegatedOperation | bytes |
#
core.StateAccountTokenRatesName | Description | Type |
---|---|---|
UpdateTime | uint64 | |
Rates | []core.TokenRate |
#
core.StreamReceiptsRequestName | Description | Type |
---|---|---|
Sequence | Optional sequence where to start, when omitted, starts from tip of the chain | int64 |
TransactionHashes | optional tx hashes to filter for, strings because grpc gateway doesnt support custom serializers on the URL | []string |
#
core.SyncBlocksRequestName | Description | Type |
---|---|---|
OffsetBlockHash | bytes | |
Limit | int32 |
#
core.TokenName | Description | Type |
---|---|---|
ExpireTime | Request time + 120s | uint64 |
Address | The source address | bytes |
Signature | Signed by the server | bytes |
#
core.TokenRateName | Description | Type |
---|---|---|
Currency | uint32 | |
Rate | uint64 |
#
core.TokenRequestName | Description | Type |
---|---|---|
OriginalChallenge | originalChallenge contains original challenge from server | bytes |
ClientAddr | bytes | |
SignedChallenge | bytes |
#
core.TokenResponseName | Description | Type |
---|---|---|
Token | bytes |
#
core.TransactionTransaction is the building block of the network.
It contains the operations with state modifications or other actions to be handled by the witnesses.
Name | Description | Type |
---|---|---|
Hash | Hash of this transaction | bytes |
SourceAddress | Source defines the address which generated and signed this transaction. | bytes |
Timestamp | Timestamp millis when this TX was created on the source system | uint64 |
Operations | Operations which should be applied to the blockchain state. | []core.Operation |
Signature | Signature guarantees the Transaction originates from the source account | bytes |
TracingContext | Optional tracing info, use to carry tracing context to another node | bytes |
Nonce | Incremental number by signing account providing processing order to messages. | uint64 |
CreateAccount | Optional, who created the transaction on behalf of the owner. When this field is set, it will be used for verifying the signature. Just like the signature, `CreateAccount` might be dropped in consolidation of the chain. | bytes |
SecureHash | SecureHash is set by connector in order to verify transaction metadata context | bytes |
IsPulse | Mark true if this is transaction is part of the Pulse system | bool |
#
core.TransactionReceiptExecution result of a Transaction
Name | Description | Type |
---|---|---|
Status | Execution status of the transaction. False = failed. True = success. | bool |
FeeOwner | When null, it means the fee owner is Transaction.SourceAddress, this is inferred by default. | bytes |
OperationReceipts | Allows to override specific behavior at operation level. | []core.OperationReceipt |
ErrorOperation | Which operation caused the error | uint32 |
ErrorCode | Error code, can be set to an error string indicating problem. Eg: INSUFFICIENT_TOKEN, CONTRACT_MISSING, … | string |
ErrorMessage | Optional error message and variable dump. Can be left empty. | string |
#
core.TransactionResponseName | Description | Type |
---|---|---|
Tx | core.Transaction | |
ProcessedInBlockHash | bytes |
#
core.ValidateBlockRequestName | Description | Type |
---|---|---|
Block | core.Block | |
View | core.View | |
BlockAnnotations | core.BlockAnnotations |
#
core.ValidateBlockResponseName | Description | Type |
---|---|---|
Signature | bytes | |
ChainTip | In case of failed validation, we send the chain tip of the remote node at time of validation. | core.BlockHeader |
#
core.ViewBroadcasted by the producer-elect when the network agrees on him being the new producer
New view == New producer
Name | Description | Type |
---|---|---|
ViewID | The View ID of the round we are about to launch | uint64 |
Producer | Target of this message ( witnesses | blockhash ) mod n | bytes |
Validator | Who should validate the round (witnesses-validator) mod n | bytes |
LastBlock | Hash of the last committed block we have | core.BlockHeader |
ProduceAmount | Nr of blocks planned to be generated by this witness | uint32 |
ViewChangeRequests | The viewchanges | []core.ViewChange |
#
core.ViewChangeViewChange = node requesting to change producer
ViewChanges are alive and only valid for a short time, so no need to store them.
Name | Description | Type |
---|---|---|
NewViewID | Ever increasing number -- gaps can exist on the network of this when producers are down during re-election. | uint64 |
Producer | What node should produce next according to this witness | bytes |
Validator | What node should validate next according to this witness | bytes |
LastBlock | Hash of the last committed block we have | bytes |
ProduceAmount | Nr of blocks planned to be generated by this witness | uint32 |
LastBlockProofCommits | Proof that 2f+1 of the network is committed to this point | []core.Commit |
Witness | Address of witness who has voted for this | bytes |
Timestamp | Used by the view change algorithm to calculate network-relevant view change time offset | uint64 |
Signature | Sig of this msg | bytes |
#
core.ViewListName | Description | Type |
---|---|---|
Views | []core.View |
#
core.VoidEmpty placeholder structure
Name | Description | Type |
---|
#
core.WitnessListNode's current list of known witnesses
Name | Description | Type |
---|---|---|
Witnesses | List of known elected witnesses | []core.PeerInfo |
Candidates | List of known candidates | []core.PeerInfo |
#
integrations.IntegrationConfigName | Description | Type |
---|---|---|
Role | Role of this integration | string |
Agreement | The agreement address this configures | string |
OperationalKey | Private key of an Account who can sign the transactions for this agreement. | string |
DelegateOf | Who is the controlling account of this service account. | string |
RootActionConfigs | Configs how to handle different root actions | []integrations.RootActionConfig |
DefaultActionRootType | The default root to create when an action request is fired without | string |
ExpireDays | The number of days actions can be published since their root creation. | int32 |
UrlActions | URLs which need to trigger actions | []integrations.UrlAction |
Name | Display name used in the UI | string |
Metadata | This contains informative properties not used by our integration. | []integrations.KeyValue |
#
integrations.KeyValueName | Description | Type |
---|---|---|
Key | string | |
Value | integrations.Value |
#
integrations.ListMapName | Description | Type |
---|---|---|
Values | []integrations.KeyValue |
#
integrations.RedirectUrlName | Description | Type |
---|---|---|
Url | The URL to which we redirect. | string |
AliasId | Alternative URL-safe identifier that will redirect to this URL. | string |
#
integrations.RootActionConfigName | Description | Type |
---|---|---|
RootType | The root type this configures | string |
RedirectUrls | Redirect URL configurations | []integrations.RedirectUrl |
#
integrations.UrlActionURL which triggers an action
Name | Description | Type |
---|---|---|
Url | Url part which is the trigger | string |
Action | Action which is triggered | string |
#
integrations.ValueName | Description | Type |
---|---|---|
Str | string | |
I32 | int32 | |
U32 | uint32 | |
I64 | int64 | |
U64 | uint64 | |
Bool | bool | |
Blob | bytes | |
ListValues | List of multiple values. | []integrations.Value |
ListMap | Int key:val lookups, list-based to have stable serializer. | integrations.ListMap |
#
Scalar value typesLanguage-specific scalar type mapping reference.
Type | Notes | Go | PHP | Python | Java | C++ |
---|---|---|---|---|---|---|
double | float64 | float | float | double | double | |
float | float32 | float | float | float | float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | integer | int | int | int32 |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | integer/string | int/long | long | int64 |
uint32 | Uses variable-length encoding. | uint32 | integer | int/long | int | uint32 |
uint64 | Uses variable-length encoding. | uint64 | integer/string | int/long | long | uint64 |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | integer | int | int | int32 |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | integer/string | int/long | long | int64 |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | integer | int | int | uint32 |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | integer/string | int/long | long | uint64 |
sfixed32 | Always four bytes. | int32 | integer | int | int | int32 |
sfixed64 | Always eight bytes. | int64 | integer/string | int/long | long | int64 |
bool | bool | boolean | boolean | boolean | bool | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | string | str/unicode | String | string |
bytes | May contain any arbitrary sequence of bytes. | []byte | string | str | ByteString | string |
#
Developersnote
These docs are generated from the core/* protobuf definitions.
Changes should be done in the source files or will be overwritten.