Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ For more information about the WaaS 2.0 API, see [Introduction to WaaS 2.0](http
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: v2
- Package version: 1.32.0
- Package version: 1.33.0
- Generator version: 7.6.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://www.cobo.com/waas](https://www.cobo.com/waas)
Expand All @@ -27,7 +27,7 @@ Python 3.7+
### pip install

```sh
pip install cobo-waas2==1.32.0
pip install cobo-waas2==1.33.0
```

Then import the package:
Expand Down Expand Up @@ -144,6 +144,7 @@ Class | Method | HTTP request | Description
*PaymentApi* | [**create_refund**](docs/PaymentApi.md#create_refund) | **POST** /payments/refunds | Create refund order
*PaymentApi* | [**create_refund_link**](docs/PaymentApi.md#create_refund_link) | **POST** /payments/links/refunds | Create refund link
*PaymentApi* | [**create_report**](docs/PaymentApi.md#create_report) | **POST** /payments/reports | Generate reports
*PaymentApi* | [**create_sdk_link**](docs/PaymentApi.md#create_sdk_link) | **POST** /payments/links/sdk | Create SDK link
*PaymentApi* | [**create_settlement_request**](docs/PaymentApi.md#create_settlement_request) | **POST** /payments/settlement_requests | Create settlement request
*PaymentApi* | [**create_top_up_addresses**](docs/PaymentApi.md#create_top_up_addresses) | **POST** /payments/topup/address | Batch create top-up addresses
*PaymentApi* | [**delete_counterparty_by_id**](docs/PaymentApi.md#delete_counterparty_by_id) | **DELETE** /payments/counterparty/{counterparty_id} | Delete counterparty
Expand Down
2 changes: 1 addition & 1 deletion cobo_waas2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
""" # noqa: E501


__version__ = "1.32.0"
__version__ = "1.33.0"

# import apis into sdk package
from cobo_waas2.api.address_books_api import AddressBooksApi
Expand Down
154 changes: 154 additions & 0 deletions cobo_waas2/api/payment_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3018,6 +3018,160 @@ def _create_report_serialize(
files=_files,
)

@validate_call
def create_sdk_link(
self,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
) -> Link:
"""Create SDK link

This operation creates a payment link for use with the front-end SDK integration. The returned URL and token can be used to initialize the Cobo payment SDK in your front-end application. For more information, see [Cobo Payment Guide](https://www.cobo.com/payments/en/guides/overview).

:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:return: Returns the result object.
""" # noqa: E501

_param = self._create_sdk_link_serialize(
)

_response_types_map: Dict[str, Optional[str]] = {
'201': "Link",
'4XX': "ErrorResponse",
'5XX': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
).data

@validate_call
def create_sdk_link_with_http_info(
self,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
) -> ApiResponse[Link]:
"""Create SDK link

This operation creates a payment link for use with the front-end SDK integration. The returned URL and token can be used to initialize the Cobo payment SDK in your front-end application. For more information, see [Cobo Payment Guide](https://www.cobo.com/payments/en/guides/overview).

:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:return: Returns the result object.
""" # noqa: E501

_param = self._create_sdk_link_serialize(
)

_response_types_map: Dict[str, Optional[str]] = {
'201': "Link",
'4XX': "ErrorResponse",
'5XX': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
)

@validate_call
def create_sdk_link_without_preload_content(
self,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
) -> RESTResponseType:
"""Create SDK link

This operation creates a payment link for use with the front-end SDK integration. The returned URL and token can be used to initialize the Cobo payment SDK in your front-end application. For more information, see [Cobo Payment Guide](https://www.cobo.com/payments/en/guides/overview).

:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:return: Returns the result object.
""" # noqa: E501

_param = self._create_sdk_link_serialize(
)

_response_types_map: Dict[str, Optional[str]] = {
'201': "Link",
'4XX': "ErrorResponse",
'5XX': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response

def _create_sdk_link_serialize(
self,
) -> RequestSerialized:
_path_params: Dict[str, str] = {}
_query_params: List[Tuple[str, str]] = []
_form_params: List[Tuple[str, str]] = []
_files: Dict[str, Union[str, bytes]] = {}
_body_params: Optional[bytes] = None

# process the path parameters
# process the query parameters
# process the header parameters
# process the form parameters
# process the body parameter

# set the HTTP header `Accept`
_header_params = {
"Accept": "application/json",
"Content-Type": "application/json"
}

return self.api_client.param_serialize(
method='POST',
resource_path='/payments/links/sdk',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
body=_body_params,
post_params=_form_params,
files=_files,
)

@validate_call
def create_settlement_request(
self,
Expand Down
2 changes: 1 addition & 1 deletion cobo_waas2/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def __init__(
self.rest_client = rest.RESTClientObject(configuration)
self.default_headers = {}
# Set default User-Agent.
self.user_agent = 'cobo-waas2-python-sdk/1.32.0'
self.user_agent = 'cobo-waas2-python-sdk/1.33.0'

def __enter__(self):
return self
Expand Down
40 changes: 32 additions & 8 deletions cobo_waas2/models/transaction_extra.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@
from cobo_waas2.models.transaction_babylon_business_info import TransactionBabylonBusinessInfo
from cobo_waas2.models.transaction_babylon_tx_parameters import TransactionBabylonTxParameters
from cobo_waas2.models.transaction_core_stake_info import TransactionCoreStakeInfo
from cobo_waas2.models.transaction_wallet_connect_info import TransactionWalletConnectInfo
from pydantic import StrictStr, Field
from typing import Union, List, Set, Optional, Dict
from typing_extensions import Literal, Self

TRANSACTIONEXTRA_ONE_OF_SCHEMAS = ["TransactionBabylonBusinessInfo", "TransactionBabylonTxParameters", "TransactionCoreStakeInfo"]
TRANSACTIONEXTRA_ONE_OF_SCHEMAS = ["TransactionBabylonBusinessInfo", "TransactionBabylonTxParameters", "TransactionCoreStakeInfo", "TransactionWalletConnectInfo"]

class TransactionExtra(BaseModel):
"""
Expand All @@ -34,8 +35,10 @@ class TransactionExtra(BaseModel):
oneof_schema_2_validator: Optional[TransactionBabylonTxParameters] = None
# data type: TransactionCoreStakeInfo
oneof_schema_3_validator: Optional[TransactionCoreStakeInfo] = None
actual_instance: Optional[Union[TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo]] = None
one_of_schemas: Set[str] = { "TransactionBabylonBusinessInfo", "TransactionBabylonTxParameters", "TransactionCoreStakeInfo" }
# data type: TransactionWalletConnectInfo
oneof_schema_4_validator: Optional[TransactionWalletConnectInfo] = None
actual_instance: Optional[Union[TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo, TransactionWalletConnectInfo]] = None
one_of_schemas: Set[str] = { "TransactionBabylonBusinessInfo", "TransactionBabylonTxParameters", "TransactionCoreStakeInfo", "TransactionWalletConnectInfo" }

model_config = ConfigDict(
validate_assignment=True,
Expand Down Expand Up @@ -76,12 +79,17 @@ def actual_instance_must_validate_oneof(cls, v):
error_messages.append(f"Error! Input type `{type(v)}` is not `TransactionCoreStakeInfo`")
else:
match += 1
# validate data type: TransactionWalletConnectInfo
if not isinstance(v, TransactionWalletConnectInfo):
error_messages.append(f"Error! Input type `{type(v)}` is not `TransactionWalletConnectInfo`")
else:
match += 1
if match > 1:
# more than 1 match
raise ValueError("Multiple matches found when setting `actual_instance` in TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo. Details: " + ", ".join(error_messages))
raise ValueError("Multiple matches found when setting `actual_instance` in TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo, TransactionWalletConnectInfo. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
raise ValueError("No match found when setting `actual_instance` in TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo. Details: " + ", ".join(error_messages))
raise ValueError("No match found when setting `actual_instance` in TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo, TransactionWalletConnectInfo. Details: " + ", ".join(error_messages))
else:
return v

Expand Down Expand Up @@ -116,6 +124,11 @@ def from_json(cls, json_str: str) -> Self:
instance.actual_instance = TransactionCoreStakeInfo.from_json(json_str)
return instance

# check if data type is `TransactionWalletConnectInfo`
if _data_type == "WalletConnectInfo":
instance.actual_instance = TransactionWalletConnectInfo.from_json(json_str)
return instance

# check if data type is `TransactionBabylonBusinessInfo`
if _data_type == "TransactionBabylonBusinessInfo":
instance.actual_instance = TransactionBabylonBusinessInfo.from_json(json_str)
Expand All @@ -131,6 +144,11 @@ def from_json(cls, json_str: str) -> Self:
instance.actual_instance = TransactionCoreStakeInfo.from_json(json_str)
return instance

# check if data type is `TransactionWalletConnectInfo`
if _data_type == "TransactionWalletConnectInfo":
instance.actual_instance = TransactionWalletConnectInfo.from_json(json_str)
return instance

return instance
# deserialize data into TransactionBabylonBusinessInfo
try:
Expand All @@ -150,14 +168,20 @@ def from_json(cls, json_str: str) -> Self:
match += 1
except (ValidationError, ValueError) as e:
error_messages.append(str(e))
# deserialize data into TransactionWalletConnectInfo
try:
instance.actual_instance = TransactionWalletConnectInfo.from_json(json_str)
match += 1
except (ValidationError, ValueError) as e:
error_messages.append(str(e))

if match > 1:
# more than 1 match
raise ValueError("Multiple matches found when deserializing the JSON string into TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo. Details: " + ", ".join(error_messages))
raise ValueError("Multiple matches found when deserializing the JSON string into TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo, TransactionWalletConnectInfo. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
return instance
# raise ValueError("No match found when deserializing the JSON string into TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo. Details: " + ", ".join(error_messages))
# raise ValueError("No match found when deserializing the JSON string into TransactionExtra with oneOf schemas: TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo, TransactionWalletConnectInfo. Details: " + ", ".join(error_messages))
else:
return instance

Expand All @@ -171,7 +195,7 @@ def to_json(self) -> str:
else:
return json.dumps(self.actual_instance)

def to_dict(self) -> Optional[Union[Dict[str, Any], TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo]]:
def to_dict(self) -> Optional[Union[Dict[str, Any], TransactionBabylonBusinessInfo, TransactionBabylonTxParameters, TransactionCoreStakeInfo, TransactionWalletConnectInfo]]:
"""Returns the dict representation of the actual instance"""
if self.actual_instance is None:
return None
Expand Down
68 changes: 68 additions & 0 deletions docs/PaymentApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Method | HTTP request | Description
[**create_refund**](PaymentApi.md#create_refund) | **POST** /payments/refunds | Create refund order
[**create_refund_link**](PaymentApi.md#create_refund_link) | **POST** /payments/links/refunds | Create refund link
[**create_report**](PaymentApi.md#create_report) | **POST** /payments/reports | Generate reports
[**create_sdk_link**](PaymentApi.md#create_sdk_link) | **POST** /payments/links/sdk | Create SDK link
[**create_settlement_request**](PaymentApi.md#create_settlement_request) | **POST** /payments/settlement_requests | Create settlement request
[**create_top_up_addresses**](PaymentApi.md#create_top_up_addresses) | **POST** /payments/topup/address | Batch create top-up addresses
[**delete_counterparty_by_id**](PaymentApi.md#delete_counterparty_by_id) | **DELETE** /payments/counterparty/{counterparty_id} | Delete counterparty
Expand Down Expand Up @@ -1315,6 +1316,73 @@ Name | Type | Description | Notes

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **create_sdk_link**
> Link create_sdk_link()

Create SDK link

This operation creates a payment link for use with the front-end SDK integration. The returned URL and token can be used to initialize the Cobo payment SDK in your front-end application. For more information, see [Cobo Payment Guide](https://www.cobo.com/payments/en/guides/overview).

### Example

* Api Key Authentication (CoboAuth):

```python
import cobo_waas2
from cobo_waas2.models.link import Link
from cobo_waas2.rest import ApiException
from pprint import pprint

# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2"
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.PaymentApi(api_client)

try:
# Create SDK link
api_response = api_instance.create_sdk_link()
print("The response of PaymentApi->create_sdk_link:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling PaymentApi->create_sdk_link: %s\n" % e)
```



### Parameters

This endpoint does not need any parameter.

### Return type

[**Link**](Link.md)

### Authorization

[CoboAuth](../README.md#CoboAuth)

### HTTP request headers

- **Content-Type**: application/json
- **Accept**: application/json

### HTTP response details

| Status code | Description | Response headers |
|-------------|-------------|------------------|
**201** | Link created successfully. | - |
**4XX** | Bad request. Your request contains malformed syntax or invalid parameters. | - |
**5XX** | Internal server error. | - |

[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

# **create_settlement_request**
> Settlement create_settlement_request(create_settlement_request_request=create_settlement_request_request)

Expand Down
3 changes: 3 additions & 0 deletions docs/TransactionExtra.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ Name | Type | Description | Notes
**change_address** | **str** | The change address on the Bitcoin chain. If not provided, the source wallet&#39;s address will be used as the change address. | [optional]
**validator_address** | **str** | The validator&#39;s EVM address. | [optional]
**reward_address** | **str** | The EVM address used to receive staking rewards. | [optional]
**dapp_name** | **str** | The dapp name that initiated this transaction. | [optional]
**dapp_domain** | **str** | The dapp domain that initiated this transaction | [optional]
**session_id** | **str** | The session id that initiated this transaction | [optional]

## Example

Expand Down
Loading
Loading