stakwork / sphinx-kotlin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Adding new Contact

tomsmith8 opened this issue · comments

Task

Parent Ticket for Account Creation.

Adding new contact:

  • Generate new child pub key for the new contact: rust: pubkeyFromSeed (will be store on contact record childPubKey)
  • Subscribe to the topics for this contact ${child_pubkey}/${index}/res/#
  • Publish to register child pub key with LSP ${child_pubkey}/${index}/req/register
  • Get identity back: lspPubkey, scid
  • Form to set alias, pubkey and routeHint (contact ok pubkey and contact ok key route hint)
  • Generate contact record with: alias, pubkey, routeHint, index, scid, childPubKey.
  • Send key_exchange msg (use relay as reference). Fields to send on key_exchange:
    1. okKey: your own okKey
    2. routeHint: routeHint of your ok key
    3. contactKey: childPubKey generated for that contact
    4. contactRouteHint: build on this way -> lspPubKey_scid (lspPubKey from server record, scid from contact record)
  • Update contact with contactKey and contactRouteHint coming on exchange_key_confirmation messsage
  • On key_exchange message received: do same process described above and send back key_exchange_confirmation message with:
    1. okKey
    2. routeHint
    3. contactKey
    4. contactRouteHint