({senderAddress, keyring, lookupKey, keyId})
| 292 | } |
| 293 | |
| 294 | async function acquireSigningKeys({senderAddress, keyring, lookupKey, keyId}) { |
| 295 | let {[senderAddress]: signerKeys} = await keyring.getKeyByAddress(senderAddress, {keyId}); |
| 296 | if (signerKeys) { |
| 297 | return { |
| 298 | signerKeys, |
| 299 | local: true |
| 300 | }; |
| 301 | } |
| 302 | // if no keys in local keyring, try key discovery mechanisms |
| 303 | let rotation; |
| 304 | if (keyId) { |
| 305 | ({[senderAddress]: signerKeys} = await keyring.getKeyByAddress(senderAddress)); |
| 306 | if (signerKeys) { |
| 307 | // potential key rotation event |
| 308 | rotation = true; |
| 309 | } |
| 310 | } |
| 311 | await lookupKey(rotation); |
| 312 | ({[senderAddress]: signerKeys} = await keyring.getKeyByAddress(senderAddress, {keyId})); |
| 313 | return { |
| 314 | signerKeys: signerKeys || [], |
| 315 | discovery: true |
| 316 | }; |
| 317 | } |
| 318 | |
| 319 | /** |
| 320 | * Sign plaintext message |
no test coverage detected