| 538 | return api_response(result=contracts) |
| 539 | |
| 540 | def register_token( |
| 541 | self, registry_address: TokenNetworkRegistryAddress, token_address: TokenAddress |
| 542 | ) -> Response: |
| 543 | if self.raiden_api.raiden.config.environment_type == Environment.PRODUCTION: |
| 544 | return api_error( |
| 545 | errors="Registering a new token is currently disabled in production mode", |
| 546 | status_code=HTTPStatus.NOT_IMPLEMENTED, |
| 547 | ) |
| 548 | |
| 549 | conflict_exceptions = ( |
| 550 | AddressWithoutCode, |
| 551 | AlreadyRegisteredTokenAddress, |
| 552 | BrokenPreconditionError, |
| 553 | InvalidBinaryAddress, |
| 554 | InvalidToken, |
| 555 | InvalidTokenAddress, |
| 556 | RaidenRecoverableError, |
| 557 | ) |
| 558 | log.debug( |
| 559 | "Registering token", |
| 560 | node=self.checksum_address, |
| 561 | registry_address=to_checksum_address(registry_address), |
| 562 | token_address=to_checksum_address(token_address), |
| 563 | ) |
| 564 | try: |
| 565 | token_network_address = self.raiden_api.token_network_register( |
| 566 | registry_address=registry_address, |
| 567 | token_address=token_address, |
| 568 | channel_participant_deposit_limit=TokenAmount(UINT256_MAX), |
| 569 | token_network_deposit_limit=TokenAmount(UINT256_MAX), |
| 570 | ) |
| 571 | except conflict_exceptions as e: |
| 572 | return api_error(errors=str(e), status_code=HTTPStatus.CONFLICT) |
| 573 | except InsufficientEth as e: |
| 574 | return api_error(errors=str(e), status_code=HTTPStatus.PAYMENT_REQUIRED) |
| 575 | except MaxTokenNetworkNumberReached as e: |
| 576 | return api_error(errors=str(e), status_code=HTTPStatus.FORBIDDEN) |
| 577 | |
| 578 | return api_response( |
| 579 | result=dict(token_network_address=to_checksum_address(token_network_address)), |
| 580 | status_code=HTTPStatus.CREATED, |
| 581 | ) |
| 582 | |
| 583 | def mint_token_for( |
| 584 | self, token_address: TokenAddress, to: Address, value: TokenAmount |