func (c *Client) Remove(contentType wallet.ContentType, contentID string) error {
	auth, err := c.auth()
	if err != nil {
		return err
	}
	return c.wallet.Remove(auth, contentType, contentID)
}
Remove removes wallet content by content ID.

Supported data models:
- https://w3c-ccg.github.io/universal-wallet-interop-spec/#Collection
- https://w3c-ccg.github.io/universal-wallet-interop-spec/#Credential
- https://w3c-ccg.github.io/universal-wallet-interop-spec/#DIDResolutionResponse
- https://w3c-ccg.github.io/universal-wallet-interop-spec/#meta-data
- https://w3c-ccg.github.io/universal-wallet-interop-spec/#connection
package vcwallet
import (
	"encoding/json"
	"errors"
	"fmt"
	"github.com/piprate/json-gold/ld"
	"github.com/hyperledger/aries-framework-go/pkg/client/outofband"
	"github.com/hyperledger/aries-framework-go/pkg/common/log"
	"github.com/hyperledger/aries-framework-go/pkg/crypto"
	"github.com/hyperledger/aries-framework-go/pkg/didcomm/common/service"
	"github.com/hyperledger/aries-framework-go/pkg/doc/verifiable"
	"github.com/hyperledger/aries-framework-go/pkg/framework/aries/api/vdr"
	"github.com/hyperledger/aries-framework-go/pkg/kms"
	"github.com/hyperledger/aries-framework-go/pkg/wallet"
	"github.com/hyperledger/aries-framework-go/spi/storage"
)
var logger = log.New("aries-framework/client/vcwallet")
var ErrWalletLocked = errors.New("wallet locked")
type provider interface {
	StorageProvider() storage.Provider
	VDRegistry() vdr.Registry
	Crypto() crypto.Crypto
	JSONLDDocumentLoader() ld.DocumentLoader
	MediaTypeProfiles() []string
	didCommProvider  
}
type didCommProvider interface {
	KMS() kms.KeyManager
	ServiceEndpoint() string
	ProtocolStateStorageProvider() storage.Provider
	Service(id string) (interface{}, error)
	KeyType() kms.KeyType
	KeyAgreementType() kms.KeyType
}
type walletAuth func() (string, error)
var noAuth walletAuth = func() (string, error) { return "", ErrWalletLocked }
type Client struct {
	wallet *wallet.Wallet
	auth   walletAuth
}
func New(userID string, ctx provider, options ...wallet.UnlockOptions) (*Client, error) {
	w, err := wallet.New(userID, ctx)
	if err != nil {
		return nil, err
	}
	client := &Client{wallet: w, auth: noAuth}
	if len(options) > 0 {
		if client.Close() {
			logger.Debugf("wallet was already open, existing wallet instance key manager is now closed")
		}
		err = client.Open(options...)
		if err != nil {
			return nil, err
		}
	}
	return client, nil
}
func CreateProfile(userID string, ctx provider, options ...wallet.ProfileOptions) error {
	return wallet.CreateProfile(userID, ctx, options...)
}
func UpdateProfile(userID string, ctx provider, options ...wallet.ProfileOptions) error {
	return wallet.UpdateProfile(userID, ctx, options...)
}
func ProfileExists(userID string, ctx provider) error {
	return wallet.ProfileExists(userID, ctx)
}
func (c *Client) Open(options ...wallet.UnlockOptions) error {
	authToken, err := c.wallet.Open(options...)
	if err != nil {
		return err
	}
	c.auth = func() (s string, e error) {
		return authToken, nil
	}
	return nil
}
func (c *Client) Close() bool {
	c.auth = noAuth
	return c.wallet.Close()
}
func (c *Client) Export(auth string) (json.RawMessage, error) {
	return nil, fmt.Errorf("to be implemented")
}
func (c *Client) Import(auth string, contents json.RawMessage) error {
	return fmt.Errorf("to be implemented")
}
func (c *Client) Add(contentType wallet.ContentType, content json.RawMessage, options ...wallet.AddContentOptions) error {  
	auth, err := c.auth()
	if err != nil {
		return err
	}
	return c.wallet.Add(auth, contentType, content, options...)
}