npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@polymeshassociation/signing-manager-types

v3.8.0

Published

Types defining the Polymesh SDK signing manager interface

Readme

js-semistandard-style semantic-release

Polymesh Signing Manager Types

This defines the types needed to implement a Polymesh SDK signing manager, along with exporting some commonly needed utilities for implementations

A signing manager abstracts the cryptographic signing of transactions so the SDK is indifferent to where and how private keys are stored.

Ethereum signing managers

Polymesh's revive pallet lets an Ethereum key dispatch any runtime call, as the account AccountId32 = <20 byte H160> ++ [0xEE; 12]. A signing manager holding Ethereum keys implements EthSigningManager, which extends SigningManager with a single synchronous getEthSigner() method. The SDK routes on the signing address, so this capability is additive — existing signing managers are unaffected, and a hybrid manager may hold both native and Ethereum keys.

  • EthTransactionRequest — the Ethereum transaction the SDK builds. Every field is supplied by the SDK, including the gas limit and the chain ID; a signer must not estimate gas, substitute its own values, or sign for whichever chain the provider happens to be connected to. Fields are EIP-1193 wire format (0x-prefixed hex), so a signer built on viem or ethers must convert them, and map gas to that library's gas limit field
  • EthSigner — implements signTransaction (returns raw signed bytes for the SDK to broadcast — preferred) and/or sendTransaction (the wallet broadcasts and returns the Ethereum transaction hash). At least one is required, and the SDK decides which to use from whichever is present rather than from a flag
  • EthSignerCapabilities — what cannot be derived from the signer's shape. Currently just eip1559, which defaults to true and is set to false by signers that can only encode legacy (type 0x0) transactions
  • isEthSigningManager(manager) — typeguard for consumers routing between the native and Ethereum paths

A user rejecting the request should surface as an error carrying the EIP-1193 code 4001; the SDK maps that to TransactionRejectedByUser. Re-throwing the provider's own error, or preserving its code when wrapping it, is usually enough.

An EthSigningManager still implements the whole SigningManager interface: getAccounts() returns the SS58 encoded 0xEE accounts (not H160 hex), setSs58Format() is honoured when encoding them, and getExternalSigner() returns a PolkadotSigner whose signPayload and signRaw throw — an Ethereum key cannot produce a signature the chain will accept over a SCALE payload.

Implementations

The signing manager API allows for more specialized signers to be implemented. The linked packages are not reccomended for general use and require access to a 3rd party API. Linked for completness, and to provide examples for more advance use cases.

Custom Implementations

  • Azure Keys are held in Microsoft Azure
  • Fireblocks Keys are held in Fireblocks
  • Approval Demonstrates a "cold wallet" type approach