/* istanbul ignore file */
/* tslint:disable */
/* eslint-disable */
import type { BroadcastKMS } from '../models/BroadcastKMS';
import type { DogeBlock } from '../models/DogeBlock';
import type { DogeInfo } from '../models/DogeInfo';
import type { DogeTransactionUTXO } from '../models/DogeTransactionUTXO';
import type { DogeTransactionUTXOKMS } from '../models/DogeTransactionUTXOKMS';
import type { DogeTx } from '../models/DogeTx';
import type { DogeUTXO } from '../models/DogeUTXO';
import type { PrivKey } from '../models/PrivKey';
import type { PrivKeyRequest } from '../models/PrivKeyRequest';
import type { SignatureId } from '../models/SignatureId';
import type { TransactionHash } from '../models/TransactionHash';
import type { Wallet } from '../models/Wallet';
import type { CancelablePromise } from '../core/CancelablePromise';
import { request as __request } from '../core/request';
export class DogecoinService {
/**
* Generate Dogecoin wallet
*
1 credit per API call.
Tatum supports BIP44 HD wallets. It is very convenient and secure, since it can generate 2^31 addresses from 1 mnemonic phrase. Mnemonic phrase consists of 24 special words in defined order and can restore access to all generated addresses and private keys.
Each address is identified by 3 main values:
- Private Key - your secret value, which should never be revealed
- Public Key - public address to be published
- Derivation index - index of generated address
Tatum follows BIP44 specification and generates for Dogecoin wallet with derivation path m'/44'/3'/0'/0. More about BIP44 HD wallets can be found here - https://github.com/litecoin/bips/blob/master/bip-0044.mediawiki.
* Generate BIP44 compatible Dogecoin wallet.
*
* @param mnemonic Mnemonic to use for generation of extended public and private keys.
* @returns Wallet OK
* @throws ApiError
*/
public static dogeGenerateWallet(
mnemonic?: string,
): CancelablePromise {
return __request({
method: 'GET',
path: `/v3/dogecoin/wallet`,
query: {
'mnemonic': mnemonic,
},
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Generate Dogecoin deposit address from Extended public key
* 1 credit per API call.
* Generate Dogecoin deposit address from Extended public key. Deposit address is generated for the specific index - each extended public key can generate
* up to 2^31 addresses starting from index 0 until 2^31 - 1.
*
* @param xpub Extended public key of wallet.
* @param index Derivation index of desired address to be generated.
* @returns any OK
* @throws ApiError
*/
public static dogeGenerateAddress(
xpub: string,
index: number,
): CancelablePromise<{
/**
* Dogecoin address
*/
address?: string;
}> {
return __request({
method: 'GET',
path: `/v3/dogecoin/address/${xpub}/${index}`,
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Generate Dogecoin private key
* 2 credits per API call.
* Generate private key for address from mnemonic for given derivation path index. Private key is generated for the specific index - each mnemonic
* can generate up to 2^32 private keys starting from index 0 until 2^31 - 1.
*
* @param requestBody
* @returns PrivKey OK
* @throws ApiError
*/
public static dogeGenerateAddressPrivateKey(
requestBody: PrivKeyRequest,
): CancelablePromise {
return __request({
method: 'POST',
path: `/v3/dogecoin/wallet/priv`,
body: requestBody,
mediaType: 'application/json',
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* @deprecated
* JSON RPC HTTP driver
* 2 credits per API call
* This endpoint is deprecated. Use the HTTP-based JSON RPC driver instead.
* Use this endpoint URL as an http-based JSON RPC driver to connect directly to the node provided by Tatum.
*
* @param requestBody
* @returns any OK
* @throws ApiError
*/
public static dogeRpcDriver(
requestBody: {
/**
* Version of the JSON RPC.
*/
jsonrpc?: string;
/**
* ID of the request, could be any arbitrary identifier.
*/
id?: string;
/**
* Method to invoke on the node.
*/
method?: string;
/**
* Params to the method call, if required.
*/
params?: any[];
},
): CancelablePromise {
return __request({
method: 'POST',
path: `/v3/dogecoin/node`,
body: requestBody,
mediaType: 'application/json',
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Get Dogecoin Blockchain Information
* 1 credit per API call.
Get Dogecoin Blockchain Information. Obtain basic info like testnet / mainnet version of the chain, current block number and it's hash.
* @returns DogeInfo OK
* @throws ApiError
*/
public static dogeGetBlockChainInfo(): CancelablePromise {
return __request({
method: 'GET',
path: `/v3/dogecoin/info`,
errors: {
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Get Dogecoin Block hash
* 1 credit per API call.
Get Dogecoin Block hash. Returns hash of the block to get the block detail.
* @param i The number of blocks preceding a particular block on a block chain.
* @returns any OK
* @throws ApiError
*/
public static dogeGetBlockHash(
i: number,
): CancelablePromise<{
/**
* Block hash
*/
hash?: string;
}> {
return __request({
method: 'GET',
path: `/v3/dogecoin/block/hash/${i}`,
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Get Dogecoin Block by hash or height
* 1 credit per API call.
Get Dogecoin Block detail by block hash or height.
* @param hash Block hash or height.
* @returns DogeBlock OK
* @throws ApiError
*/
public static dogeGetBlock(
hash: string,
): CancelablePromise {
return __request({
method: 'GET',
path: `/v3/dogecoin/block/${hash}`,
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
404: `Block not found.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Get Dogecoin Transaction by hash
* 1 credit per API call.
Get Dogecoin Transaction detail by transaction hash.
* @param hash Transaction hash
* @returns DogeTx OK
* @throws ApiError
*/
public static dogeGetRawTransaction(
hash: string,
): CancelablePromise {
return __request({
method: 'GET',
path: `/v3/dogecoin/transaction/${hash}`,
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Get Mempool Transactions
* 1 credit per API call.
Get Dogecoin Transaction ids in the mempool.
* @returns string OK
* @throws ApiError
*/
public static dogeGetMempool(): CancelablePromise> {
return __request({
method: 'GET',
path: `/v3/dogecoin/mempool`,
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Get Dogecoin UTXO of Transaction
* 1 credit per API call.
* Get UTXO of given transaction and output index. UTXO means Unspent Transaction Output, which is in blockchain terminology assets, that user
* received on the specific address and does not spend it yet.
* In bitcoin-like blockchains (BTC, LTC, DOGE, BCH), every transaction is built from the list of previously
* not spent transactions connected to the address. If user owns address A, receives in transaciont T1 10 DOGE, he can spend in the next transaction
* UTXO T1 of total value 10 DOGE. User can spend multiple UTXOs from different addresses in 1 transaction.
* If UTXO is not spent, data are returned, otherwise 404 error code.
*
* @param hash TX Hash
* @param index Index of tx output to check if spent or not
* @returns DogeUTXO OK
* @throws ApiError
*/
public static dogeGetUtxo(
hash: string,
index: number,
): CancelablePromise {
return __request({
method: 'GET',
path: `/v3/dogecoin/utxo/${hash}/${index}`,
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Send Dogecoin to blockchain addresses
* 2 credits per API call.
* Send Dogecoin to blockchain addresses. It is possible to build a blockchain transaction in 1 way:
*
* - fromUTXO - assets will be sent from the list of unspent UTXOs. Each of the UTXO will be included in the transaction.
*
* In bitcoin-like blockchains, the transaction is created from the list of previously not spent UTXO. Every UTXO contains the number of funds, which can be spent.
* When the UTXO enters into the transaction, the whole amount is included and must be spent. For example, address A receives 2 transactions, T1 with 1 DOGE and T2 with 2 DOGE.
* The transaction, which will consume UTXOs for T1 and T2, will have available amount to spent 3 DOGE = 1 DOGE (T1) + 2 DOGE(T2).
* There can be multiple recipients of the transactions, not only one. In the to section, every recipient address has it's corresponding amount.
* When the amount of funds, that should receive the recipient is lower than the number of funds from the UTXOs, the difference is sent to the change address.
* This operation needs the private key of the blockchain address. Every time the funds are transferred, the transaction must be signed with the corresponding private key.
* No one should ever send it's own private keys to the internet because there is a strong possibility of stealing keys and losing funds. In this method, it is possible to enter privateKey
* or signatureId. PrivateKey should be used only for quick development on testnet versions of blockchain when there is no risk of losing funds. In production,
* Tatum KMS should be used for the highest security standards, and signatureId should be present in the request.
* Alternatively, using the Tatum client library for supported languages.
*
*
* @param requestBody
* @returns any OK
* @throws ApiError
*/
public static dogeTransferBlockchain(
requestBody: (DogeTransactionUTXO | DogeTransactionUTXOKMS),
): CancelablePromise<(TransactionHash | SignatureId)> {
return __request({
method: 'POST',
path: `/v3/dogecoin/transaction`,
body: requestBody,
mediaType: 'application/json',
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
/**
* Broadcast signed Dogecoin transaction
* 2 credits per API call.
* Broadcast signed transaction to Dogecoin blockchain. This method is used internally from Tatum KMS, Tatum Middleware or Tatum client libraries.
* It is possible to create custom signing mechanism and use this method only for broadcasting data to the blockchain.
*
* @param requestBody
* @returns TransactionHash OK
* @throws ApiError
*/
public static dogeBroadcast(
requestBody: BroadcastKMS,
): CancelablePromise {
return __request({
method: 'POST',
path: `/v3/dogecoin/broadcast`,
body: requestBody,
mediaType: 'application/json',
errors: {
400: `Bad Request. Validation failed for the given object in the HTTP Body or Request parameters.`,
401: `Unauthorized. Not valid or inactive subscription key present in the HTTP Header.`,
403: `Forbidden. The request is authenticated, but it is not possible to required perform operation due to logical error or invalid permissions.`,
500: `Internal server error. There was an error on the server while processing the request.`,
},
});
}
}