Implemente e teste o Stablecoin Chaincode
Você pode implantar o chaincode diretamente na console do Oracle Blockchain Platform ou usando o Blockchain App Builder.
Implantando o Chaincode
Antes de implantar o chaincode, crie IDs de inscrição para cada usuário do token e mapeie os usuários do token para seus respectivos IDs de inscrição. Especifique apenas um usuário para cada matrícula. Para obter mais informações sobre como adicionar inscrições, consulte Adicionar Inscrições a um Proxy REST no Usando o Oracle Blockchain Platform.
Ao implantar o chaincode do token, você deve chamar o método init e informar o ID da organização e o ID do usuário Token Admin.
Para obter informações sobre a implantação no console do Oracle Blockchain Platform, consulte Usar Implantação Avançada em Usando o Oracle Blockchain Platform.
- Extraia o arquivo
Stablecoin.zip. - Importe o chaincode
Stablecoinpara a extensão Blockchain App Builder no Visual Studio Code. - Edite o arquivo
.ochain.jsonpara atualizar o valor da chaveconfigFileLocationpara o caminho do arquivo de especificaçãoStablecoin.yml. - Abra uma janela de terminal e navegue até a pasta chaincode e execute o comando a seguir.
npm install
Fluxo de Processo de Amostra para o Stablecoin Chaincode
Um fluxo de processo típico usando os métodos stablecoin segue estes passos básicos.- Os administradores de token usam o método
initializeStablecoinTokenpara inicializar a stablecoin, especificando valores para ocurrencyNamefixo (como USD) econversionRate. - Os administradores de token usam os métodos
createAccounteassociateTokenToAccountpara criar contas de token e designar atribuições a todos os usuários, incluindo aprovadores para aprovações de vários níveis, minters, notários, remetentes e receptores. - Administradores de token ou administradores de organização usam o método
createAccountPolicyCheckpara criar políticas de conta para todos os remetentes e destinatários e verificar sinalizadores de KYC, AML e restrição. - Os administradores de token usam o método
createApprovalPolicyCheckpara definir políticas de aprovação especificando limites de transação, requisitos de aprovação, como o número necessário de aprovações e detalhes do aprovador com sequências de aprovação para aprovações de vários níveis. - Os administradores de token usam o método
addRolepara designar atribuições como minter, burner e notário a contas.
- O mineiro usa o método
requestMintpara solicitar a aprovação para mint stablecoins. - O aprovador de hortelã usa o método
approveMintpara aprovar a solicitação do mineiro. - As stablecoins são emitidas para a conta do mineiro.
- Um usuário inicia uma transferência usando o método
holdTokens. - O sistema verifica a conformidade da política
AccountPolicyCheck. Se os valoreskycComplianceouamlComplianceforem definidos comofalsepara o remetente ou o destinatário, a transferência não ocorrerá. Se o valorrestrictionFlagfor definido comotruepara o remetente ou o recebedor, somente o valor na faixa mais baixa da política de aprovação poderá ser transferido. O valor da transferência é correspondido com os limitesApprovalPolicyChecke os aprovadores apropriados com as sequências definidas são aplicados à transação. - Os aprovadores usam o método
approveTransactionpara revisar e autorizar a transferência. As aprovações ocorrem com base na sequência do aprovador, conforme definido na política de aprovação. - Após todas as aprovações, o notário do sistema (definido durante o processo de retenção) usa o método
executeHoldTokenspara aprovar a transação. O valor aprovado é transferido para a conta do recebedor.
kycCompliance, amlCompliance e restrictionFlag para o remetente e o destinatário são validados durante todas as aprovações que usam os métodos approveTransaction ou executeHoldTokens.
- O queimador usa o método
requestBurnpara solicitar aprovação para queimar (destruir) stablecoins. - O aprovador de gravação usa o método
approveBurnpara aprovar a solicitação do gravador. - As stablecoins são queimadas da conta do queimador.
- Administradores e auditores podem rastrear cada operação de hortelã, retenção, transferência, aprovação de vários níveis e gravação usando os métodos
getAccountTransactionHistoryegetAccountTransactionHistoryWithFilters.