GO86 Gold Origin 86 ← Voltar ao ecossistema
VAULT86

Roteador de Fluxo

Motor central · opera os quatro momentos

Não é uma etapa do ciclo: é o contrato que opera todas. Converte FGO86 em MGO86, emite o GO86 a partir do MGO86, autoriza o resgate em barra e valida a transferência entre carteiras.

O que é

Contrato de orquestração. Não é token: mantém o estado contábil de cada posição e é a única entidade autorizada a emitir os três ativos. A regra é estrutural, não operacional: GO86 nasce apenas de MGO86, e nenhuma das quatro operações pode ser executada fora dele.

Objetivo

Garantir que captação, conversão, liquidez e resgate ocorram em etapas separadas e auditáveis, com registro no Cofre-Limbo, sem queima e sem rota de retorno.

Como é feito

  1. fund() executa somente após o vencimento: consome o FGO86, deposita no Cofre-Limbo e emite MGO86.
  2. settle() consome o MGO86, deposita no Cofre-Limbo e cria o GO86 na mesma transação.
  3. redeemBar() confere o lote mínimo de 12.500 unidades e libera a barra física, depositando o GO86 no Cofre-Limbo.
  4. validateTransfer() confere o lote mínimo de 1.000 unidades antes de qualquer transferência entre carteiras. Sem essa checagem, o GO86 não se move.
  5. Não existe função que converta FGO86 em GO86.
  6. Cada endereço mantém uma Position com valor comprado, convertido e liquidado.
  7. Não existe unwind() nem refund(). Após settle(), o estado é final.

Especificação

Tipo
Contrato roteador, não token
Acesso
AccessControl por papel
Proteção
ReentrancyGuard e verificação de estado
Preço
Oráculo de referência do ouro
Direção
Unidirecional
Governança
Multi-sig após o deploy

Funções do contrato

fund(uint256 fgAmount) Investidor

Etapa 1 para 2: consome o FGO86, deposita no Cofre-Limbo, apura a quantidade e emite MGO86.

settle(uint256 grams) Investidor

Etapa 2 para 3: consome o MGO86, deposita no Cofre-Limbo e cria o GO86. Única função que cria GO86.

redeemBar(uint256 grams, bytes32 barId) Investidor (lote de 12.500)

Terceiro momento: confere o lote mínimo, registra a barra física e deposita o GO86 no Cofre-Limbo.

validateTransfer(address from, address to, uint256 amount) GO86

Quarto momento: confere lote mínimo de 1.000 unidades e libera a transferência entre carteiras. Não passa pelo Cofre-Limbo.

quote(uint256 fgAmount, uint8 termMonths) view Público

Simula a quantidade de MGO86 gerada, considerando preço, prazo e proporção vigentes.

setRatio(uint256 bps) ADMIN com timelock

Ajusta a proporção entre valor e quantidade, com timelock e evento público.

setOracle(address) ADMIN

Define o oráculo de preço de referência do ouro.

setLimbo(address) ADMIN

Propaga o endereço do Cofre-Limbo para os três tokens.

positionOf(address) view Público

Retorna a Position completa do endereço.

Regras

  • GO86 é emitido apenas a partir de MGO86.
  • Nenhuma função converte FGO86 em GO86.
  • A conversão fica bloqueada até a data de vencimento do contrato.
  • Resgate em barra e transferência entre carteiras passam pela checagem do motor.
  • Cada etapa encerrada deposita o token no Cofre-Limbo. A venda entre carteiras não deposita.
  • O estado é atualizado antes de qualquer transferência externa.

Correlação com os demais contratos

FGO86

Consome o FGO86 após o vencimento, converte em MGO86 e deposita o FGO86 no Cofre-Limbo.

MGO86

Emite e processa. O MGO86 só existe dentro do motor e é a matéria-prima do GO86.

GO86

Detém o MINTER_ROLE, cria o ativo final em settle() e valida a saída em redeemBar() e validateTransfer().

Cofre-Limbo

Executa cada depósito no limbo: FGO86 na conversão, MGO86 na emissão e GO86 no resgate.

Outros contratos do ecossistema

Ver todos os comandos na mecânica lógica