Comment voir si un compte existe?

Y a il un moyen actuellement de checker si une adresse est active ou non dans le storage ?
Je veux dire pas juste l’identité, mais une address est enregistré en blockchain ?

Oui, storage.system().account(pubkey):

1 Like

Super !

Est-ce que je peux batch ce genre de requête sur le storage pour récupérer le data.randomID de 30 address en une seul et même requête par exemple ?

Je suppose que c’est au niveau de la lib JS que ça se joue ?

Oui le serveur RPC supporte les batchs, par contre c’est à toi de trouver comment envoyer un batch de requêtes avec ta lib

2 Likes

@poka tu peux aussi requeter toute une sous-partie du storage niveau requête RPC, avec la méthode state_getKeys(prefix)state_getKeysPaged(prefix, count, startKey?), ce sera plus performant qu’un batch RPC, can c’est une seule requête et donc une seule lecture en BD.

Peut-être que ta lib expose un moyen de faire ça, sinon faut l’ajouter, où taper RPC toi-même directement.

prefix correspond à quoi ici, tu as un exemple à me donner?


Tout ce que je trouve dans le code que j’ai au sujet du mot clé state_getKeys c’est dans le code JS brut bindé dans Gecko:

getKeysPaged:{alias:["childstate_getKeysPagedAt"],description:"Returns the keys with prefix from a child
storage with pagination support",params:[{name:"childKey",
  type:"PrefixedStorageKey"},{
  name:"prefix",type:"StorageKey"},{name:"count",type:"u32"},{
  name:"startKey",type:"StorageKey",isOptional:!0},{
  name:"at",type:"Hash",isHistoric:!0,isOptional:!0}],type:"Vec<StorageKey>"
}

Mais je n’ai pas l’impression que le SDK polkawallet ne bind quoi que ce soit à ce sujet …

Actuellement voilà tout petit bout de code que j’utilise pour vérifier si un compte existe ou non par exemple:

Future<bool> isAccountExit(String address) async {
  final _accountInfo = await sdk.webView!
        .evalJavascript('api.query.system.account("$address")');
  final _randomId = _accountInfo['data']['randomId'];
  return _randomId == null ? false : true;
}

Je ne vois rien qui pourrait remplacer evalJavascript dans le webView concernant des state_getKeys.
Peut être qu’il va falloir que je fasse une feature request ou que je m’y colle, le mec est tout seul sur ce SDK, pas très enclin à discuter et bosse en ce moment sur les smart contract etherium visiblement:
image

A creuser, mais ce serait plus aux dev JS de m’aider là dessus.

1 Like

À ce que j’ai expliqué dans ma présentation aux RML, et à “l’encoded sotrage key” que tu voit dans polkadotjs.

1 Like

Bon je crois que je vais faire une requête par address pour le moment, et limiter à 10 address scannés en même temps lors de l’import d’une phrase de restauration pour le moment, je verrai pour le state_getKeys plus tard.

1 Like