mirror of
https://github.com/Qortal/qortal.git
synced 2025-05-05 09:17:51 +00:00
Add address infos for BTC, DOGE, DGB, RVN
This commit is contained in:
parent
3a723ed116
commit
183dac5ac4
@ -13,7 +13,9 @@ import org.qortal.api.ApiError;
|
|||||||
import org.qortal.api.ApiErrors;
|
import org.qortal.api.ApiErrors;
|
||||||
import org.qortal.api.ApiExceptionFactory;
|
import org.qortal.api.ApiExceptionFactory;
|
||||||
import org.qortal.api.Security;
|
import org.qortal.api.Security;
|
||||||
|
import org.qortal.api.model.crosschain.AddressRequest;
|
||||||
import org.qortal.api.model.crosschain.BitcoinSendRequest;
|
import org.qortal.api.model.crosschain.BitcoinSendRequest;
|
||||||
|
import org.qortal.crosschain.AddressInfo;
|
||||||
import org.qortal.crosschain.Bitcoin;
|
import org.qortal.crosschain.Bitcoin;
|
||||||
import org.qortal.crosschain.ForeignBlockchainException;
|
import org.qortal.crosschain.ForeignBlockchainException;
|
||||||
import org.qortal.crosschain.SimpleTransaction;
|
import org.qortal.crosschain.SimpleTransaction;
|
||||||
@ -148,6 +150,44 @@ public class CrossChainBitcoinResource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/addressinfos")
|
||||||
|
@Operation(
|
||||||
|
summary = "Returns information for each address for a hierarchical, deterministic BIP32 wallet",
|
||||||
|
description = "Supply BIP32 'm' private/public key in base58, starting with 'xprv'/'xpub' for mainnet, 'tprv'/'tpub' for testnet",
|
||||||
|
requestBody = @RequestBody(
|
||||||
|
required = true,
|
||||||
|
content = @Content(
|
||||||
|
mediaType = MediaType.APPLICATION_JSON,
|
||||||
|
schema = @Schema(
|
||||||
|
implementation = AddressRequest.class
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
responses = {
|
||||||
|
@ApiResponse(
|
||||||
|
content = @Content(array = @ArraySchema( schema = @Schema( implementation = AddressInfo.class ) ) )
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
)
|
||||||
|
@ApiErrors({ApiError.INVALID_PRIVATE_KEY, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE})
|
||||||
|
@SecurityRequirement(name = "apiKey")
|
||||||
|
public List<AddressInfo> getBitcoinAddressInfos(@HeaderParam(Security.API_KEY_HEADER) String apiKey, AddressRequest addressRequest) {
|
||||||
|
Security.checkApiCallAllowed(request);
|
||||||
|
|
||||||
|
Bitcoin bitcoin = Bitcoin.getInstance();
|
||||||
|
|
||||||
|
if (!bitcoin.isValidDeterministicKey(addressRequest.xpub58))
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.INVALID_PRIVATE_KEY);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return bitcoin.getWalletAddressInfos(addressRequest.xpub58);
|
||||||
|
} catch (ForeignBlockchainException e) {
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/unusedaddress")
|
@Path("/unusedaddress")
|
||||||
@Operation(
|
@Operation(
|
||||||
|
@ -13,7 +13,9 @@ import org.qortal.api.ApiError;
|
|||||||
import org.qortal.api.ApiErrors;
|
import org.qortal.api.ApiErrors;
|
||||||
import org.qortal.api.ApiExceptionFactory;
|
import org.qortal.api.ApiExceptionFactory;
|
||||||
import org.qortal.api.Security;
|
import org.qortal.api.Security;
|
||||||
|
import org.qortal.api.model.crosschain.AddressRequest;
|
||||||
import org.qortal.api.model.crosschain.DigibyteSendRequest;
|
import org.qortal.api.model.crosschain.DigibyteSendRequest;
|
||||||
|
import org.qortal.crosschain.AddressInfo;
|
||||||
import org.qortal.crosschain.Digibyte;
|
import org.qortal.crosschain.Digibyte;
|
||||||
import org.qortal.crosschain.ForeignBlockchainException;
|
import org.qortal.crosschain.ForeignBlockchainException;
|
||||||
import org.qortal.crosschain.SimpleTransaction;
|
import org.qortal.crosschain.SimpleTransaction;
|
||||||
@ -148,6 +150,44 @@ public class CrossChainDigibyteResource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/addressinfos")
|
||||||
|
@Operation(
|
||||||
|
summary = "Returns information for each address for a hierarchical, deterministic BIP32 wallet",
|
||||||
|
description = "Supply BIP32 'm' private/public key in base58, starting with 'xprv'/'xpub' for mainnet, 'tprv'/'tpub' for testnet",
|
||||||
|
requestBody = @RequestBody(
|
||||||
|
required = true,
|
||||||
|
content = @Content(
|
||||||
|
mediaType = MediaType.APPLICATION_JSON,
|
||||||
|
schema = @Schema(
|
||||||
|
implementation = AddressRequest.class
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
responses = {
|
||||||
|
@ApiResponse(
|
||||||
|
content = @Content(array = @ArraySchema( schema = @Schema( implementation = AddressInfo.class ) ) )
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
)
|
||||||
|
@ApiErrors({ApiError.INVALID_PRIVATE_KEY, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE})
|
||||||
|
@SecurityRequirement(name = "apiKey")
|
||||||
|
public List<AddressInfo> getDigibyteAddressInfos(@HeaderParam(Security.API_KEY_HEADER) String apiKey, AddressRequest addressRequest) {
|
||||||
|
Security.checkApiCallAllowed(request);
|
||||||
|
|
||||||
|
Digibyte digibyte = Digibyte.getInstance();
|
||||||
|
|
||||||
|
if (!digibyte.isValidDeterministicKey(addressRequest.xpub58))
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.INVALID_PRIVATE_KEY);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return digibyte.getWalletAddressInfos(addressRequest.xpub58);
|
||||||
|
} catch (ForeignBlockchainException e) {
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/unusedaddress")
|
@Path("/unusedaddress")
|
||||||
@Operation(
|
@Operation(
|
||||||
|
@ -13,7 +13,9 @@ import org.qortal.api.ApiError;
|
|||||||
import org.qortal.api.ApiErrors;
|
import org.qortal.api.ApiErrors;
|
||||||
import org.qortal.api.ApiExceptionFactory;
|
import org.qortal.api.ApiExceptionFactory;
|
||||||
import org.qortal.api.Security;
|
import org.qortal.api.Security;
|
||||||
|
import org.qortal.api.model.crosschain.AddressRequest;
|
||||||
import org.qortal.api.model.crosschain.DogecoinSendRequest;
|
import org.qortal.api.model.crosschain.DogecoinSendRequest;
|
||||||
|
import org.qortal.crosschain.AddressInfo;
|
||||||
import org.qortal.crosschain.Dogecoin;
|
import org.qortal.crosschain.Dogecoin;
|
||||||
import org.qortal.crosschain.ForeignBlockchainException;
|
import org.qortal.crosschain.ForeignBlockchainException;
|
||||||
import org.qortal.crosschain.SimpleTransaction;
|
import org.qortal.crosschain.SimpleTransaction;
|
||||||
@ -148,6 +150,44 @@ public class CrossChainDogecoinResource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/addressinfos")
|
||||||
|
@Operation(
|
||||||
|
summary = "Returns information for each address for a hierarchical, deterministic BIP32 wallet",
|
||||||
|
description = "Supply BIP32 'm' private/public key in base58, starting with 'xprv'/'xpub' for mainnet, 'tprv'/'tpub' for testnet",
|
||||||
|
requestBody = @RequestBody(
|
||||||
|
required = true,
|
||||||
|
content = @Content(
|
||||||
|
mediaType = MediaType.APPLICATION_JSON,
|
||||||
|
schema = @Schema(
|
||||||
|
implementation = AddressRequest.class
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
responses = {
|
||||||
|
@ApiResponse(
|
||||||
|
content = @Content(array = @ArraySchema( schema = @Schema( implementation = AddressInfo.class ) ) )
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
)
|
||||||
|
@ApiErrors({ApiError.INVALID_PRIVATE_KEY, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE})
|
||||||
|
@SecurityRequirement(name = "apiKey")
|
||||||
|
public List<AddressInfo> getDogecoinAddressInfos(@HeaderParam(Security.API_KEY_HEADER) String apiKey, AddressRequest addressRequest) {
|
||||||
|
Security.checkApiCallAllowed(request);
|
||||||
|
|
||||||
|
Dogecoin dogecoin = Dogecoin.getInstance();
|
||||||
|
|
||||||
|
if (!dogecoin.isValidDeterministicKey(addressRequest.xpub58))
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.INVALID_PRIVATE_KEY);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return dogecoin.getWalletAddressInfos(addressRequest.xpub58);
|
||||||
|
} catch (ForeignBlockchainException e) {
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/unusedaddress")
|
@Path("/unusedaddress")
|
||||||
@Operation(
|
@Operation(
|
||||||
|
@ -13,7 +13,9 @@ import org.qortal.api.ApiError;
|
|||||||
import org.qortal.api.ApiErrors;
|
import org.qortal.api.ApiErrors;
|
||||||
import org.qortal.api.ApiExceptionFactory;
|
import org.qortal.api.ApiExceptionFactory;
|
||||||
import org.qortal.api.Security;
|
import org.qortal.api.Security;
|
||||||
|
import org.qortal.api.model.crosschain.AddressRequest;
|
||||||
import org.qortal.api.model.crosschain.RavencoinSendRequest;
|
import org.qortal.api.model.crosschain.RavencoinSendRequest;
|
||||||
|
import org.qortal.crosschain.AddressInfo;
|
||||||
import org.qortal.crosschain.ForeignBlockchainException;
|
import org.qortal.crosschain.ForeignBlockchainException;
|
||||||
import org.qortal.crosschain.Ravencoin;
|
import org.qortal.crosschain.Ravencoin;
|
||||||
import org.qortal.crosschain.SimpleTransaction;
|
import org.qortal.crosschain.SimpleTransaction;
|
||||||
@ -148,6 +150,44 @@ public class CrossChainRavencoinResource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("/addressinfos")
|
||||||
|
@Operation(
|
||||||
|
summary = "Returns information for each address for a hierarchical, deterministic BIP32 wallet",
|
||||||
|
description = "Supply BIP32 'm' private/public key in base58, starting with 'xprv'/'xpub' for mainnet, 'tprv'/'tpub' for testnet",
|
||||||
|
requestBody = @RequestBody(
|
||||||
|
required = true,
|
||||||
|
content = @Content(
|
||||||
|
mediaType = MediaType.APPLICATION_JSON,
|
||||||
|
schema = @Schema(
|
||||||
|
implementation = AddressRequest.class
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
responses = {
|
||||||
|
@ApiResponse(
|
||||||
|
content = @Content(array = @ArraySchema( schema = @Schema( implementation = AddressInfo.class ) ) )
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
)
|
||||||
|
@ApiErrors({ApiError.INVALID_PRIVATE_KEY, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE})
|
||||||
|
@SecurityRequirement(name = "apiKey")
|
||||||
|
public List<AddressInfo> getRavencoinAddressInfos(@HeaderParam(Security.API_KEY_HEADER) String apiKey, AddressRequest addressRequest) {
|
||||||
|
Security.checkApiCallAllowed(request);
|
||||||
|
|
||||||
|
Ravencoin ravencoin = Ravencoin.getInstance();
|
||||||
|
|
||||||
|
if (!ravencoin.isValidDeterministicKey(addressRequest.xpub58))
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.INVALID_PRIVATE_KEY);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return ravencoin.getWalletAddressInfos(addressRequest.xpub58);
|
||||||
|
} catch (ForeignBlockchainException e) {
|
||||||
|
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.FOREIGN_BLOCKCHAIN_NETWORK_ISSUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/unusedaddress")
|
@Path("/unusedaddress")
|
||||||
@Operation(
|
@Operation(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user