code: func AddressableSigner(keyClient KeyClient, address crypto.Address) (*Signer, error) {
  	publicKey, err := keyClient.PublicKey(address)
  	if err != nil {
  		return nil, err
  	}
  	// TODO: we can do better than this and return a typed signature when we reform the keys service
  	return &Signer{
  		keyClient: keyClient,
  		address:   address,
  		publicKey: publicKey,
  	}, nil
  }
docs: // AddressableSigner creates a signer that assumes the address holds an Ed25519 key