Account

Representa o estado de uma conta no livro.

Representação JSON
{
  "sequenceNumber": string,
  "publicKey": string,
  "roundId": string,
  "comment": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "userDetails": {
    object (UserDetails)
  },
  "accountManagerDetails": {
    object (AccountManagerDetails)
  },
  "tokenManagerDetails": {
    object (TokenManagerDetails)
  },
  "contractTokenManagerDetails": {
    object (ContractTokenManagerDetails)
  },
  "contractDetails": {
    object (ContractDetails)
  },
  "clearinghouseDetails": {
    object (ClearingHouseDetails)
  },
  "currencyOperatorDetails": {
    object (CurrencyOperatorDetails)
  },
  "platformOperatorDetails": {
    object (PlatformOperatorDetails)
  }
  // End of mutually exclusive fields.
}
Campos
sequenceNumber

string (int64 format)

Apenas saída. O número de sequência desta conta. Esse número aumenta a cada transação enviada por essa conta.

publicKey

string (bytes format)

Apenas saída. A chave pública principal associada a esta conta, usada para verificação de assinatura.

Uma string codificada em base64.

roundId

string (int64 format)

Apenas saída. O ID da rodada de execução (semelhante à "altura" do bloco) em que as informações da conta fornecidas são precisas.

comment

string

Apenas saída. O comentário da conta armazenado quando ela foi criada.

Detalhes específicos com base no tipo de conta. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo um dos campos será definido em uma resposta:
userDetails

object (UserDetails)

Apenas saída. Detalhes de uma conta de usuário padrão.

accountManagerDetails

object (AccountManagerDetails)

Apenas saída. Detalhes de uma conta de gerente de contas.

tokenManagerDetails

object (TokenManagerDetails)

Apenas saída. Detalhes de uma conta de administrador de token.

contractTokenManagerDetails

object (ContractTokenManagerDetails)

Apenas saída. Detalhes de uma conta de gerente de token de contrato.

contractDetails

object (ContractDetails)

Apenas saída. Detalhes de uma conta de contrato inteligente.

clearinghouseDetails

object (ClearingHouseDetails)

Apenas saída. Detalhes de uma conta de compensação.

currencyOperatorDetails

object (CurrencyOperatorDetails)

Apenas saída. Detalhes de uma conta de operador de moeda.

platformOperatorDetails

object (PlatformOperatorDetails)

Apenas saída. Detalhes de uma conta de operador de plataforma.

Fim dos campos mutuamente exclusivos.

UserDetails

Detalhes específicos de uma conta de usuário.

Representação JSON
{
  "accountManagerId": string,
  "tokenManagerId": string,
  "roles": [
    enum (Role)
  ],
  "accountStatus": enum (AccountStatus),
  "balance": {
    object (CurrencyValue)
  },
  "contractAccountFields": {
    string: {
      object (Fields)
    },
    ...
  }
}
Campos
accountManagerId

string

Apenas saída. O ID do gerente de contas desse usuário.

tokenManagerId

string

Apenas saída. O ID do gerenciador de tokens do usuário.

roles[]

enum (Role)

Apenas saída. A lista de papéis concedidos a essa conta.

accountStatus

enum (AccountStatus)

Apenas saída. O status desta conta.

balance

object (CurrencyValue)

Apenas saída. O saldo de tokens dessa conta de usuário.

contractAccountFields

map (key: string, value: object (Fields))

Apenas saída. Os campos da conta do contrato (ID do contrato -> campos) para este usuário.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Papel

O conjunto regular de papéis.

Tipos enumerados
ROLE_UNSPECIFIED Papel inválido.
ROLE_PAYER O papel que permite que uma conta inicie uma transação de pagamento.
ROLE_RECEIVER O papel que permite que uma conta receba pagamentos.
ROLE_CONTRACT_CREATOR O papel que permite que uma conta implante contratos.
ROLE_CONTRACT_PARTICIPANT O papel que permite que uma conta interaja com contratos implantados.

AccountStatus

O status de uma conta.

Tipos enumerados
ACCOUNT_STATUS_UNSPECIFIED Status inválido.
ACCOUNT_STATUS_ACTIVE Estado ativo em que a conta pode realizar as operações permitidas pelos papéis dela.
ACCOUNT_STATUS_INACTIVE Estado inativo em que todas as transações na conta são proibidas. O gerente da conta ainda pode enviar transações de gerenciamento de conta.

CurrencyValue

Representa um valor monetário (ou seja, dinheiro). A moeda não está incluída nessa mensagem. A moeda relevante é decidida pela conta que envia a transação. Cada conta tem uma moeda imutável exclusiva associada a ela.

Representação JSON
{
  "value": string
}
Campos
value

string (int64 format)

Obrigatório. O número de unidades menores da moeda.

Essa menor denominação válida é chamada de "unidades menores" e é especificada na ISO 4217. Por exemplo, para USD, o valor será o número de centavos e, para GBP, será o número de pence. Para o iene japonês, que não tem uma unidade menor, será o número de ienes.

Campos

Um mapa de campos (nome do campo -> valor) de um contrato usado para representar campos de contrato ou de conta.

Representação JSON
{
  "fields": {
    string: {
      object (Value)
    },
    ...
  }
}
Campos
fields

map (key: string, value: object (Value))

Apenas saída. O mapa de nomes de campos para os valores deles.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Valor

Um valor concreto de algum tipo.

Representação JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "noneValue": enum (NoneValue),
  "boolValue": boolean,
  "int64Value": string,
  "stringValue": string,
  "dictValue": {
    object (DictValue)
  },
  "contractValue": {
    object (ContractValue)
  },
  "listValue": {
    object (ListValue)
  },
  "qualifiedCurrencyValue": {
    object (QualifiedCurrencyValue)
  },
  "accountValue": {
    object (AccountValue)
  },
  "amountValue": {
    object (AmountValue)
  }
  // End of mutually exclusive fields.
}
Campos
O valor real. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo um dos campos será definido em uma resposta:
noneValue

enum (NoneValue)

Opcional. Representa um valor None.

boolValue

boolean

Opcional. Um valor booleano.

int64Value

string (int64 format)

Opcional. Um valor int64.

stringValue

string

Opcional. Um valor de string.

dictValue

object (DictValue)

Opcional. Um valor de dicionário.

contractValue

object (ContractValue)

Opcional. Uma referência de contrato.

listValue

object (ListValue)

Opcional. Um valor de lista.

qualifiedCurrencyValue

object (QualifiedCurrencyValue)

Opcional. Um valor de moeda qualificado.

accountValue

object (AccountValue)

Opcional. Um valor de conta.

amountValue

object (AmountValue)

Opcional. Um valor de quantia.

Fim dos campos mutuamente exclusivos.

NoneValue

Uma enumeração singleton para representar o valor None.

Tipos enumerados
NONE_VALUE_UNSPECIFIED O valor None.

DictValue

Os índices mapeiam a chave para o valor. Por exemplo, a chave keys[0] é mapeada para values[0].

Representação JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "boolKeys": {
    object (BoolList)
  },
  "stringKeys": {
    object (StringList)
  },
  "int64Keys": {
    object (Int64List)
  },
  "genericKeys": {
    object (RepeatedValue)
  }
  // End of mutually exclusive fields.

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "boolValues": {
    object (BoolList)
  },
  "stringValues": {
    object (StringList)
  },
  "int64Values": {
    object (Int64List)
  },
  "genericValues": {
    object (RepeatedValue)
  }
  // End of mutually exclusive fields.
}
Campos
Cada chave pode ser de apenas um tipo. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo um dos campos será definido em uma resposta:
boolKeys

object (BoolList)

Opcional. Uma lista de chaves booleanas.

stringKeys

object (StringList)

Opcional. Uma lista de chaves de string.

int64Keys

object (Int64List)

Opcional. Uma lista de chaves int64.

genericKeys

object (RepeatedValue)

Opcional. Uma lista genérica de chaves.

Fim dos campos mutuamente exclusivos.
Cada valor pode ser de exatamente um tipo. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo um dos campos será definido em uma resposta:
boolValues

object (BoolList)

Opcional. Uma lista de valores booleanos.

stringValues

object (StringList)

Opcional. Uma lista de valores de string.

int64Values

object (Int64List)

Opcional. Uma lista de valores int64.

genericValues

object (RepeatedValue)

Opcional. Uma lista genérica de valores como valores.

Fim dos campos mutuamente exclusivos.

BoolList

Uma lista de booleanos.

Representação JSON
{
  "values": [
    boolean
  ]
}
Campos
values[]

boolean

Opcional. Os valores booleanos.

StringList

Uma lista de strings.

Representação JSON
{
  "values": [
    string
  ]
}
Campos
values[]

string

Opcional. Os valores de string.

Int64List

Uma lista de int64s.

Representação JSON
{
  "values": [
    string
  ]
}
Campos
values[]

string (int64 format)

Opcional. Os valores int64.

RepeatedValue

Uma lista genérica de valores.

Representação JSON
{
  "values": [
    {
      object (Value)
    }
  ]
}
Campos
values[]

object (Value)

Opcional. Os valores na lista.

ContractValue

Representa uma referência de contrato.

Representação JSON
{
  "contractId": string
}
Campos
contractId

string

Obrigatório. O ID do contrato.

ListValue

Uma lista de valores.

Representação JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "boolValues": {
    object (BoolList)
  },
  "stringValues": {
    object (StringList)
  },
  "int64Values": {
    object (Int64List)
  },
  "genericValues": {
    object (RepeatedValue)
  }
  // End of mutually exclusive fields.
}
Campos
Cada valor pode ser de exatamente um tipo. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo um dos campos será definido em uma resposta:
boolValues

object (BoolList)

Opcional. Uma lista de valores booleanos.

stringValues

object (StringList)

Opcional. Uma lista de valores de string.

int64Values

object (Int64List)

Opcional. Uma lista de valores int64.

genericValues

object (RepeatedValue)

Opcional. Uma lista genérica de valores.

Fim dos campos mutuamente exclusivos.

QualifiedCurrencyValue

Representa uma moeda no livro, que é qualificada pelo operador de moeda.

Representação JSON
{
  "operatorId": string
}
Campos
operatorId

string

Obrigatório. O ID do operador de moeda que administra a moeda.

AccountValue

Uma referência a uma conta no livro-razão.

Essa referência é trocada por um objeto gcul.Account completo pelo ambiente de execução do livro. Para mais detalhes, consulte a classe gcul.Account na referência da linguagem GCULpy.

Representação JSON
{
  "accountId": string
}
Campos
accountId

string

Obrigatório. O ID da conta.

AmountValue

Representa um valor denominado em uma moeda.

Representação JSON
{
  "currency": {
    object (QualifiedCurrencyValue)
  },
  "amountValue": string
}
Campos
currency

object (QualifiedCurrencyValue)

Obrigatório. A moeda do valor.

amountValue

string (int64 format)

Obrigatório. O número de unidades menores da moeda.

AccountManagerDetails

Detalhes específicos de um gerente de contas.

Representação JSON
{
  "numAccounts": integer,
  "tokenManagerId": string
}
Campos
numAccounts

integer

Apenas saída. O número de contas criadas por esse gerente de contas.

tokenManagerId

string

Apenas saída. O ID do gerenciador de tokens padrão para contas criadas por esse gerenciador de contas.

TokenManagerDetails

Detalhes específicos de um gerenciador de tokens.

Representação JSON
{
  "issuanceLimit": {
    object (CurrencyValue)
  },
  "issuedTokens": {
    object (CurrencyValue)
  }
}
Campos
issuanceLimit

object (CurrencyValue)

Apenas saída. A quantidade de tokens que esse gerenciador de tokens pode gerar.

issuedTokens

object (CurrencyValue)

Apenas saída. A quantidade de tokens gerados por esse gerenciador de tokens. Esse número aumenta ao cunhar e diminui ao queimar.

ContractTokenManagerDetails

Detalhes específicos de um gerenciador de tokens de contrato.

Representação JSON
{
  "issuanceLimit": {
    object (CurrencyValue)
  },
  "issuedTokens": {
    object (CurrencyValue)
  },
  "previousContractTokenManagerId": string,
  "accountStatus": enum (AccountStatus)
}
Campos
issuanceLimit

object (CurrencyValue)

Apenas saída. A quantidade de tokens que esse gerenciador de tokens de contrato pode apoiar.

Como os gerenciadores de tokens de contrato não podem aumentar ou diminuir o limite de emissão, ele precisa ser igual a issuedTokens.

issuedTokens

object (CurrencyValue)

Apenas saída. A quantidade de tokens que esse gerenciador de tokens de contrato está apoiando (ou seja, a responsabilidade total dele).

Isso equivale à soma de todos os saldos mantidos em contratos para a moeda, mais a posição líquida na matriz de liquidação.

previousContractTokenManagerId

string

Apenas saída. O ID da conta do administrador de token de contrato anterior para essa moeda. Isso forma uma trilha de auditoria que pode ser percorrida para descobrir todos os administradores anteriores. Se este for o primeiro gerenciador de tokens de contrato para a moeda, ele estará vazio.

accountStatus

enum (AccountStatus)

Apenas saída. O status desta conta.

ContractDetails

Detalhes específicos de um contrato inteligente.

Representação JSON
{
  "ownerId": string,
  "code": string,
  "contractFields": {
    object (Fields)
  },
  "currencyBalances": {
    string: {
      object (CurrencyValue)
    },
    ...
  }
}
Campos
ownerId

string

Apenas saída. O ID do proprietário do contrato.

code

string (bytes format)

Apenas saída. O código do contrato serializado.

Uma string codificada em base64.

contractFields

object (Fields)

Apenas saída. Os campos do contrato (nome do campo -> valor) para este contrato.

currencyBalances

map (key: string, value: object (CurrencyValue))

Apenas saída. Os saldos de moedas mantidos pelo contrato (operador de moeda -> saldo).

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClearingHouseDetails

Detalhes específicos de uma câmara de compensação.

Representação JSON
{
  "accountStatus": enum (AccountStatus),
  "balances": [
    {
      object (BalanceToSettle)
    }
  ],
  "settlementMode": enum (SettlementMode)
}
Campos
accountStatus

enum (AccountStatus)

Apenas saída. O status desta conta.

balances[]

object (BalanceToSettle)

Apenas saída. Os saldos que essa câmara de compensação está rastreando para liquidação.

settlementMode

enum (SettlementMode)

Apenas saída. O modo de liquidação dessa câmara de compensação.

BalanceToSettle

Um saldo a ser liquidado entre dois gerenciadores de tokens.

Representação JSON
{
  "balancePayerId": string,
  "balanceReceiverId": string,
  "balance": {
    object (CurrencyValue)
  }
}
Campos
balancePayerId

string

Apenas saída. O ID da conta que deve o saldo a ser liquidado.

balanceReceiverId

string

Apenas saída. O ID da conta que tem o saldo a ser liquidado.

balance

object (CurrencyValue)

Apenas saída. O saldo a ser liquidado. Precisa ser positivo.

SettlementMode

O modo de liquidação de uma câmara de compensação.

Tipos enumerados
SETTLEMENT_MODE_UNSPECIFIED O modo de liquidação não foi especificado. Esse valor é inválido e não deve ser usado.
SETTLEMENT_MODE_DEFERRED A câmara de compensação é responsável por rastrear a propriedade dos fundos fora do livro-razão e emitir periodicamente transações de SettlementRequest para manter os saldos correspondentes no livro-razão sincronizados.
SETTLEMENT_MODE_INSTANT A câmara de compensação mantém um único pool de fundos, e o livro-razão atua como a fonte de ouro para a alocação desses fundos entre os gestores de tokens. Esse modo de liquidação também pode ser descrito como "liquidação bruta instantânea".

CurrencyOperatorDetails

Detalhes específicos de um operador de moeda.

Representação JSON
{
  "currencyCode": string,
  "accountStatus": enum (AccountStatus),
  "previousCurrencyOperatorId": string,
  "platformOperatorId": string,
  "contractTokenManagerId": string,
  "clearinghouseId": string
}
Campos
currencyCode

string

Apenas saída. O ID da moeda associada a essa conta, representado pelo código ISO 4217 de três letras.

accountStatus

enum (AccountStatus)

Apenas saída. O status desta conta.

previousCurrencyOperatorId

string

Apenas saída. O ID do operador de moeda anterior que transferiu a propriedade da função de operador de moeda para esta conta. Se esse for o primeiro operador da moeda, o campo vai ficar vazio.

platformOperatorId

string

Apenas saída. O ID do operador da plataforma que criou este operador de moeda.

contractTokenManagerId

string

Apenas saída. O ID do gerenciador de tokens de contrato associado a esse operador de moeda.

clearinghouseId

string

Apenas saída. O ID da câmara de compensação associada a esse operador de moeda.

PlatformOperatorDetails

Detalhes específicos de um operador de plataforma.

Representação JSON
{
  "accountStatus": enum (AccountStatus),
  "previousPlatformOperatorId": string
}
Campos
accountStatus

enum (AccountStatus)

Apenas saída. O status desta conta.

previousPlatformOperatorId

string

Apenas saída. O ID do operador de plataforma anterior que transferiu a propriedade da função de operador de plataforma para esta conta. Se esse for o primeiro operador de plataforma, ele estará vazio.