12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /**
- * There are many awesome community services that provide Ethereum
- * nodes both for developers just starting out and for large-scale
- * communities.
- *
- * @_section: api/providers/thirdparty: Community Providers [thirdparty]
- */
- /**
- * Providers which offer community credentials should extend this
- * to notify any interested consumers whether community credentials
- * are in-use.
- */
- export interface CommunityResourcable {
- /**
- * Returns true of the instance is connected using the community
- * credentials.
- */
- isCommunityResource(): boolean;
- }
- // Show the throttle message only once per service
- const shown: Set<string> = new Set();
- /**
- * Displays a warning in tht console when the community resource is
- * being used too heavily by the app, recommending the developer
- * acquire their own credentials instead of using the community
- * credentials.
- *
- * The notification will only occur once per service.
- */
- export function showThrottleMessage(service: string): void {
- if (shown.has(service)) { return; }
- shown.add(service);
- console.log("========= NOTICE =========")
- console.log(`Request-Rate Exceeded for ${ service } (this message will not be repeated)`);
- console.log("");
- console.log("The default API keys for each service are provided as a highly-throttled,");
- console.log("community resource for low-traffic projects and early prototyping.");
- console.log("");
- console.log("While your application will continue to function, we highly recommended");
- console.log("signing up for your own API keys to improve performance, increase your");
- console.log("request rate/limit and enable other perks, such as metrics and advanced APIs.");
- console.log("");
- console.log("For more details: https:/\/docs.ethers.org/api-keys/");
- console.log("==========================");
- }
|