Alors je ne sais pas quelle méthode tu utilises pour envoyer ta certification.
Personnellement je la fais à la main, dans un fichier txt, *sans saut de ligne après la signature, et l’envoi avec la commande suivante
curl -X POST --data-urlencode cert@mycert.txt http://g1-test.duniter.org/wot/certify
Avec ton document je reçois l’erreur suivante :
"ucode": 1005,
"message": "Document has unkown fields or wrong line ending format"
*après vérification, il semble que ce soit Curl qui rajoute un saut de ligne à la fin du document, celui-ci donc donc bien être présent selon la méthode employée
Le champ IdtyIssuer doit contenir ma clef publique et non la tienne. De manière générale, dans le document de certification, tous les champs préfixés de “Idty” sont des champs de l’identité cible.
A noter que dans la crate documents de duniter-rs vous avez des exemples fonctionnel pour tout les documents, regardez les tests unitaires en fin de fichier qui sont tirés d’exemples réels de la Ğ1
curl -X POST --data-urlencode cert@mycert.txt http://g1-test.duniter.org/wot/certify
Warning: Couldn't read data from file "cert@mycert.txt", this makes an empty
Warning: POST.
{
"ucode": 1108,
"message": "Parameter `cert` is required"
}⏎
J’ai tenté de préfixer mon document de cert=, mais rien n’y fait. J’ai également mis un oneliner.
Notamment il ne faut pas préfixer le document de cert= mais créer un paramètre POST dont la clé est “cert” et la value le document au format raw
J’ai copier/coller ton document dans un test unitaire de Rust et ça me crache ``Err value: InvalidInnerFormat("Certification")' il doit y avoir une erreur quelque part mais je ne vois pas ou
Ha c’est bon ton document passe, il y avait une erreur dans ma regex rust qui passait entre les mailles du filet sur les document g1 que j’avais tester ! Ça me permet d’améliorer mon code en même temps merci
curl -X POST -d cert=Version%3A+10%0AType%3A+Certification%0ACurrency%3A+g1-test%0AIssuer%3A+5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH%0AIdtyIssuer%3A+mMPioknj2MQCX9KyKykdw8qMRxYR2w1u3UpdiEJHgXg%0AIdtyUniqueID%3A+mmpio%0AIdtyTimestamp%3A+7543-000044410C5370DE8DBA911A358F318096B7A269CFC2BB93272E397CC513EA0A%0AIdtySignature%3A+SmSweUD4lEMwiZfY8ux9maBjrQQDkC85oMNsin6oSQCPdXG8sFCZ4FisUaWqKsfOlZVb%2FHNa%2BTKzD2t0Yte%2BDA%3D%3D%0ACertTimestamp%3A+167899-0001F9D537C9814EE0490073A5A1245F5A40D9C5E8EF2AEA7BB9BF6CADCEA55F%0A4aUTqMc02BTQ%2BfyGrx2uaO37oJkee55d%2F9d%2BLhHt%2FAO7EEjV1ymQ3Wo8JOxZJURz09gjcu8cD0Y%2BsgnwFb7EDw%3D%3D%0A http://g1-test.duniter.org/wot/certify
{
"ucode": 1002,
"message": "Certifier must be a member"
}⏎
Warning: Couldn’t read data from file “cert@unfichierquinexistepas.txt”, this
Warning: makes an empty POST.
{
“ucode”: 1108,
“message”: “Parameter cert is required”
}
Je suis bien content d’avoir forgé mon premier document Duniter valide.
Pour le document de transaction, c’était @Tortue qui l’avait implémenté dans silkaj.
Oui, j’avais nommé mon fichier cert@mycert.txt. En effet, ça fonctionne bien ainsi. C’est top de pouvoir envoyer ces documents en shell. Va falloir écrire un programme en shell.