Catalog npm
Back to packageRELEASE DETAILS

0.0.1-beta-1

npm

@0xessential/signers

An ethers-based Signer that routes all non-payable contract calls through the EssentialForwarder meta-transaction stack.

Published1 May 2022
Direct dependencies11
Transitive dependenciesNot calculated

README

Current package documentation

@nfight/signer

@nfight/signer offers an ethers-based Signer for implementing nFight's meta-transaction stack in your dapp.

Features

Provide an EssentialSigner to an ethers Contract or wagmi contract hook and user transactions will seamlessly become meta-transactions.

  • Cross-chain NFT auth: pass an NFT's chainId, contractAddress and tokenId to Contract calls - CCTG authorizes ownership and forwards this data to your L2 contract for building cross-chain experiences without bridging.

  • Network Agnostic UX: EssentialSigner lets users sign meta-transactions with their Ethereum wallet from any network - no network switching or L2 gas tokens needed.

  • Burner Wallets: nFight supports localized on-chain delegation for NFT auth. Pass a burner Wallet to EssentialSigner so users sign meta-transactions without a popup, while your L2 contract receives the primary address as the _msgSender().

  • Simple Integration: EssentialSigner is based on ethers, written in typescript and can be used in testing environments like hardhat.

Installation

The package is available via NPM:

  yarn install @nfight/signer

Usage

The SDK expects you to set some ENV vars in your dApp's environment:

NFIGHT_CHAIN_ID

The chain ID value for the chain where your implementation contract lives. 0xEssential currently supports Polygon's Mumbai testnet (80001) and Matic mainnet (137).

NFIGHT_RELAYER_URI

The SDK will handle submitting meta-transaction requests to your relayer. To do so the SDK needs to know the URI of the relaying service. This can be a fully qualified URL or a relative path.

nFight provides an OpenZeppelin Defender autotask that can be used as your relayer, but we recommend proxying the call to your autotask webhook to keep the URL secret.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 11

Native requirements
11 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
@metamask/eth-sig-util
Environment
{
  "local_name": "@metamask/eth-sig-util",
  "alias": false,
  "peer_metadata": null
}
^4.0.1runtime
ethers
Environment
{
  "local_name": "ethers",
  "alias": false,
  "peer_metadata": null
}
^5.6.1runtime
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^17.0.30development
@typescript-eslint/eslint-plugin
Environment
{
  "local_name": "@typescript-eslint/eslint-plugin",
  "alias": false,
  "peer_metadata": null
}
^5.21.0development
@typescript-eslint/parser
Environment
{
  "local_name": "@typescript-eslint/parser",
  "alias": false,
  "peer_metadata": null
}
^5.21.0development
eslint
Environment
{
  "local_name": "eslint",
  "alias": false,
  "peer_metadata": null
}
^8.14.0development
eslint-config-prettier
Environment
{
  "local_name": "eslint-config-prettier",
  "alias": false,
  "peer_metadata": null
}
^8.5.0development
eslint-plugin-prettier
Environment
{
  "local_name": "eslint-plugin-prettier",
  "alias": false,
  "peer_metadata": null
}
^4.0.0development
eslint-plugin-simple-import-sort
Environment
{
  "local_name": "eslint-plugin-simple-import-sort",
  "alias": false,
  "peer_metadata": null
}
^7.0.0development
prettier
Environment
{
  "local_name": "prettier",
  "alias": false,
  "peer_metadata": null
}
^2.6.2development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^4.5.4development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-1B8SkUpMZD9b+yQnDgmcH0wq78uXw8v5GeCC8onanM4CTpyijivi7HguXZHA1PKv8o0SU7lD5em6R/Sj3VbW1g==",
  "shasum": "bfbc7c93998590f3d139a4ea10c2ba8cfe7cbb15",
  "tarball": "https://registry.npmjs.org/@0xessential/signers/-/signers-0.0.1-beta-1.tgz",
  "fileCount": 12,
  "unpackedSize": 179187,
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEQCIFQDlyq8oXsikwt8TIz9/1uvmLt8lXqV2+TMjoRevBPQAiA2hJGn55+yfJnhE9SZnCQIARPxH34csvceuuWl5EZ1xg=="
    }
  ],
  "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibuDeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqn6A/8CIWGv7zSpzOj4iiUT/HqP3bgVsy3FhoH5StNMPGRsRqOi0+g\r\n3VLETi9NIexn3sVXWVwEvjDC8Sf6xdgsYN9ThAlQsrbrumROV+YPTYTim7EY\r\nNsliYmCwM6p7ZOirOxRpQykXzuTvsae6qgw2+wbLFTrEHoRHm1tXEzX6qz2i\r\nWtakRu8qspYS/PBwE45DeFANm3eYG7tJkP7W/DT+klK0/6UlMW3Uvz7ZAKZb\r\neVOufT38b2EFSGEGRdBjyNAMYZlOtoDinsuuYZ7LzH8Jjrfu4GBGFs6y/Qri\r\njSRTYDnBlm+CyT2GfHKkE1pXCgBiv3ro28cUcpcqPJVU/aKn427hb5QMpf4Q\r\nGoztZ4N1Uybt842UxhuyOqJxIW0VjtuuESxA0G93u3hL4uefwi7NPT4GOTFp\r\n7Bd0ATjarnD8rltdSvD/nhL9hyKsbr4MvDUqmBLAkkVJV9K5VQZuS4Ifpj0n\r\n0RF4EdcVTPaV72YFiefR9F4zVIIe0fTSv5+Rt2+05BvydZwJSfERZjmM21id\r\nxn/LT3ClSadD6Ybpxw8FEU7vvNns66NLeKcZ82rcqFBmqt3KZX1QSnD0Gu/F\r\nj0jPkoNVayOKGR/dD4VufBs0UJh6HZDTFvqy9ecekTdw6A+W+b0AEsQ3z1fq\r\n8hGjdU+VhFWFVJGU48Z42BhQdj5VGE/i8mo=\r\n=ef40\r\n-----END PGP SIGNATURE-----\r\n"
}

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:07 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:cd15ad2356fb945d2f5d07f09b46214fa7d3c6ba2e33aac448c50ae41aef82aa

Other collected versions

0.0.1-beta-3813 Dec0.0.1-beta-3719 Oct0.0.1-beta-3611 Oct0.0.1-beta-355 Oct0.0.1-beta-3429 Sept0.0.1-beta-3328 SeptView all collected versions →