bacen / pilotord-kit-onboarding

Documentação e arquivos de configuração para participação no Piloto do Real Digital
903 stars 219 forks source link

RealDigitalDefaultAccount - padronização de input names entre getters e setters #4

Closed alexcostars closed 1 year ago

alexcostars commented 1 year ago

O primeiro input para a function addDefaultAccount do ABI RealDigitalDefaultAccount.json está especificando o name como:

"name": "cnpj8",

Já a function defaultAccount não especifica qual é o name de seu input:

  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "defaultAccount",
    ...
  },

Sugestão: se o input esperado para defaultAccount realmente for um cnpj8, sugiro especificá-lo para dar clareza ao que se espera como entrada para execução da function.

ghost commented 1 year ago

Prezado @alexcostars,

A função getter "defaultAccount" apresentada na ABI é gerada automaticamente pelo ferramental, a partir de um mapping: mapping (uint256 => address) public defaultAccount; O mapping não possui nome de parâmetro para consulta.

A função "addDefaultAccount" apresentada na ABI é de fato uma função do contrato, e possui um nome para seu parâmetro. Por este motivo há uma diferença na apresentação dessas funções na ABI.

Para atender a esta demanda, seria necessária a implementação de uma função redundante, do tipo getter com um parâmetro nomeado, porém, seguindo as melhores práticas da engenharia de softwares, optamos por manter o código simples e conciso.

Obs.: Caso sua dúvida tenha sido esclarecida, peço que feche a issue.

alexcostars commented 1 year ago

Entendo e concordo com seu comentário @aldenio-bcb,

submeti o pull request https://github.com/bacen/pilotord-kit-onboarding/pull/15 propondo uma alteração que não afeta o código fonte do contrato.