import "errors"
asset, err := client.Asset.CreateAsset(ctx, ¶tro.CreateAssetRequest{
AccountID: accountID,
Symbol: "USDT",
Chain: "ethereum",
})
if err != nil {
var apiErr *paratro.APIError
if errors.As(err, &apiErr) {
switch apiErr.ErrorBody.Code {
case "asset_already_exists":
log.Println("Asset already added — skipping")
case "account_not_active":
log.Println("Account is not active")
case "invalid_parameter":
log.Printf("Invalid parameter: %s", apiErr.ErrorBody.Message)
default:
log.Printf("API error [%d]: %s - %s",
apiErr.HTTPStatus, apiErr.ErrorBody.Code, apiErr.ErrorBody.Message)
}
} else {
log.Printf("Network or client error: %v", err)
}
return
}