decentraland-crypto-fetch
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

decentraland-crypto-fetch

Coverage Status

Make requests signed using a Decentraland Identity

Install

  npm install decentraland-crypto-fetch

Usage

This library preserves the native fetch API and works on browsers and nodejs, you only need an Identity generate with @dcl/crypto

import fetch from "decentraland-crypto-fetch";

fetch("https://service.decentraland.org/api/resource", {
  method: "POST",
  identity,
});

you can send signed metadata using the metadata property

import fetch from "decentraland-crypto-fetch";

const metadata = { key1: "value1" };

fetch("https://service.decentraland.org/api/resource", {
  method: "POST",
  identity,
  metadata,
});

You can also inject sign headers into an existing request

import fetch from "decentraland-crypto-fetch";

const metadata = { key1: "value1" };
const request = new Request("https://service.decentraland.org/api/resource", {
  method: "POST",
});

fetch(request, { identity, metadata });

Auth Chain Generator

If you want to simulate signed headers you can use the Auth Chain Generator

Identity Generator

If you need an ephemeral identity you can generate one using the Identity Generator

Inject fetcher

If your environment doesn't have a global fetch function, you can create a signedFetch injecting your own implementations as follow

import { signedFetchFactory } from "decentraland-crypto-fetch/lib/factory";
import { Headers, Request, fetch } from "node-fetch";

const signedFetch = signedFetchFactory({ Headers, Request, fetch });

Server

If you want to build services that accept Signed Request you use decentraland-crypto-middleware

CLI

> npm run fetch -- --help

Fetch the contents of the URL and sign the request with and identity if there is any

Options:
      --help      Show help                                                                    [boolean]
      --version   Show version number                                                          [boolean]
  -X, --method    Specifies a custom request method to use when communicating with the HTTP server.
                                   [choices: "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]
                                                                                        [default: "GET"]
  -i, --include   Include the HTTP response headers in the output. The HTTP response headers can include
                  things like server name, cookies, date of the document, HTTP version and more...                                                                            [boolean]
      --identity  Path to the identity file uses to sign the request                            [string]
  -H, --header    Extra header to include in the request when sending HTTP to a server.          [array]
  -d, --data      Sends the specified data in a POST request to the HTTP server                 [string]
      --no-color  Disabled color output                                                        [boolean]

Develop

If you want to contribute make you will need to setup husky otherwise your commit may fail because is not following the format standard

  npm run husky-setup

Package Sidebar

Install

npm i decentraland-crypto-fetch

Weekly Downloads

408

Version

2.0.1

License

Apache-2.0

Unpacked Size

53.6 kB

Total Files

27

Last publish

Collaborators

  • decentralandbot