0.0.2 • Published 7 months ago

argateway v0.0.2

Weekly downloads
-
License
GPL-3.0-only
Repository
github
Last release
7 months ago

ArGateway

ArGateway is a library for selecting Arweave gateways based on various routing methods. It provides a caching mechanism for efficient gateway selection and retrieval of online gateways.

Features

  • Select gateways using different routing methods:
    • Random Top Five Staked Gateway
    • Stake-weighted Random Gateway
    • Random Gateway
    • Highest Staked Gateway (default)
  • Caching of online gateway data for improved performance
  • Easy integration with Arweave applications

Installation

To use ArGateway in your project, you can install it via npm or yarn:

npm install argateway
# or
yarn add argateway
# or
pnpm add argateway
# or
bun add argateway

Usage

Here's an example of how to use ArGateway in your JavaScript/TypeScript project:

import { ArGateway } from 'argateway';

// Create an instance of ArGateway with optional cache options
const gatewayManager = new ArGateway({
  garCacheURL: 'https://dev.arns.app/v1/contract/bLAgYxAdX2Ry-nt6aH2ixgvJXbpsEYm28NgJgyqfs-U/gateways', // Optional: Gateway Address Registry cache URL
  cacheOptions: {
    location: './cache/argateway', // Optional: Cache location
    expirationTime: 3600, // Optional: Cache expiration time in seconds
  },
});

// Example 1: Select a random gateway from the top five staked online gateways
const selectedGateway1 = await gatewayManager.getOnlineGateway({
  routingMethod: 'RANDOM_TOP_FIVE_STAKED_ROUTE_METHOD',
});


// Example 2: Select a gateway using a custom selection function
const selectedGateway2 = await gatewayManager.getOnlineGateway({
  selectionFunction: (gar) => {
    // Your custom logic to select a gateway
    // Must return a `Gateway` object
  },
});

For more details and examples, please refer to the API Documentation.

Author

👤 Pawan Paudel

🤝 Contributing

Contributions, issues and feature requests are welcome! \ Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

Copyright © 2023 Pawan Paudel.

License and Attribution

This project incorporates code from the WayFinder repository, which is governed by the GNU General Public License v3.0 (GPL-3.0). The complete text of the GPL-3.0 license can be found in the LICENSE file.

I extend my gratitude to the original authors for their contributions. Specific code utilized from the WayFinder can be located in the background.js file.

For additional information, please consult the WayFinder repository.

Happy Arweaving with ArGateway!

0.0.2

7 months ago

0.0.1

8 months ago