To connect to nodes one must provide:
- Basic information such as rpc endpoint and credentials.
But MCC clients also enable users to overwrite some parameters of the client such as:
loggingOptions: Callback functionalities.rateLimitOptions: Configure load balancers, retry logic, timeouts and more.
This part is dependent on the underlying blockchain.
url: string = ""username: string = ""password: string = ""
Example:
const connectConfig = {
url: "https://myAwesomeBtcNode.com/",
username: "user",
password: "pass",
};url: string = "username?: stringpassword?: string
Example:
const connectConfig = {
url: "https://myAwesomeXrpNode.com/",
};algod= new AlgoNodeApp()indexer= new AlgoNodeApp()
Where AlgoNodeApp is an object containing:
url: string = "";token: string = "";
Example:
const connectConfig = {
algod: {
url: "https://myAwesomeXrpNode.com/algod",
token: "myAwesomeToken",
},
indexer: {
url: "https://myAwesomeXrpNode.com/indexer",
token: "myAwesomeToken2",
},
};With this object one can configure:
maxRequests: numberperMilliseconds: number@optional() maxRPS?: number@optional() timeoutMs?: numberretries: numberonSend: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => voidonResponse: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => voidonPush: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => voidonQueueEmpty: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => voidonLimitReached: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => voidonRpsSample: (inProcessing?: number, inQueue?: number, reqsPs?: number, retiresPs?: number) => voidonRetry: (retryCount?: number) => void
Default values:
{
maxRequests = 1;
perMilliseconds = 1;
maxRPS = 10;
timeoutMs = 3000;
retries = 10;
onSend = undefined;
onResponse = undefined;
onPush = undefined;
onQueueEmpty = undefined;
onLimitReached = undefined;
onRpsSample = undefined;
onRetry = undefined;
}mode: "off" | "production" | "develop"loggingCallback: (message: string) => voidwarningCallback: (message: string) => voidexceptionCallback: (error: any, message: string) => void
Default values:
export function defaultLoggingCallback(message: string): void {}
export function defaultWarningCallback(message: string): void {
console.log(message);
}
export function defaultExceptionCallback(error: any, message: string): void {
console.log(message);
console.error(error);
}
export function defaultMccLoggingObject() {
return {
mode: "develop",
loggingCallback: defaultLoggingCallback,
warningCallback: defaultWarningCallback,
exceptionCallback: defaultExceptionCallback,
};
}