common-crypto-tools v1.1.2
The list of common tools for web3 and crypto
Polkadot Typed Api was moved to another repository. polkadot-typed-api
EigenLayer Tools were moved to another repository. eigenlayer-tools
Tools
- abbreviateAddress - truncate address, like
0x387...dCE
- addHTMLBreaksToAddress - add invisible breaks to string, to make it breakable
- removeLeading0x - remove leading 0x from string, useful for logs parsing
0x387...dCE
->387...dCE
- toBigNumber - transform any digital value to
EthersBigNumber
- toBigFloat - transform any digital value to floated
BigNumber
- explorerUrl - generates blockchain explorer URLs for transactions, addresses, and blocks.
abbreviateAddress
Shortens blockchain addresses by keeping characters at the start and end, replacing the middle with symbols.
Parameters
address
: The blockchain address to abbreviate.options
: Config for customization:number
: Sets characters to keep at start/end.Options
(object): Advanced settings like size, symbol, and ignore list.
Usage
Default
import { abbreviateAddress } from "common-crypto-tools";
abbreviateAddress("0x1234567890abcdef1234567890abcdef");
// Output: "0x1234...cdef"
Custom Size and Symbol
abbreviateAddress("0x1234567890abcdef1234567890abcdef", {
size: { start: 4, end: 4 },
symbol: "*",
symbolsCount: 5,
});
// Output: "0x1234*****cdef"
Ignore List
abbreviateAddress("0x1234567890abcdef1234567890abcdef", {
ignoreList: ["0x1234567890abcdef1234567890abcdef"],
});
// Output: "0x1234567890abcdef1234567890abcdef"
Advanced
abbreviateAddress("0x1234567890abcdef1234567890abcdef", {
size: [2, 6],
symbol: ".",
});
// Output: "0x12...cdef12"
addHTMLBreaksToAddress
The addHTMLBreaksToAddress
function adds invisible HTML breaks to a string (e.g., a blockchain address) at regular intervals, making it more readable or ensuring proper wrapping in HTML contexts.
Parameters
address
(string): The input string to format. Defaults to an empty string.lettersBeforeSpace
(number): The number of characters between each inserted invisible space. Must be a positive number.
Returns
A string
with invisible HTML breaks added at the specified intervals.
Usage
Default Usage
import { addHTMLBreaksToAddress } from 'common-crypto-tools';
console.log(addHTMLBreaksToAddress("0x1234567890abcdef"));
// Output: "0x123​4567​890a​bcde​f"
Custom Interval
console.log(addHTMLBreaksToAddress("0x1234567890abcdef", 6));
// Output: "0x1234�​abcdef"
Error Handling
try {
addHTMLBreaksToAddress("0x1234567890abcdef", -1);
} catch (error) {
console.error(error.message);
// Output: "Param lettersBeforeSpace is to small: -1"
}
removeLeading0x
Removes the 0x
prefix from a string if it exists.
Parameters
data
(string): Input string.
Returns
A string without the 0x
prefix, or the original string if no prefix is found.
Examples
removeLeading0x("0x123456"); // "123456"
removeLeading0x("123456"); // "123456"
removeLeading0x("0x"); // ""
toBigNumber
Converts a BigNumberish
value into an Ethers BigNumber
instance.
Parameters
value
(BigNumberish
): The input value to convert. Can be a number, string, or other compatible type.
Returns
An Ethers BigNumber
instance representing the input value.
Examples
import { toBigNumber } from 'common-crypto-tools';
// Convert number
console.log(toBigNumber(123).toString());
// Output: "123"
// Convert string
console.log(toBigNumber("456").toString());
// Output: "456"
// Convert hex string
console.log(toBigNumber("0x1a").toString());
// Output: "26"
toBigFloat
Converts a value (BigNumber, Ethers BigNumber, or other valid input) into a BigNumber
instance for consistent floating-point operations.
Parameters
value
(BigNumber.Value | EthersBigNumber
): The input value to convert. Supports BigNumber-compatible formats or Ethers BigNumber.
Returns
A BigNumber
instance representing the input value.
Examples
import { toBigFloat } from 'common-crypto-tools';
import { BigNumber as EthersBigNumber } from 'ethers';
// Convert Ethers BigNumber
const ethersValue = EthersBigNumber.from("1000000000000000000");
console.log(toBigFloat(ethersValue).toString());
// Output: "1000000000000000000"
// Convert number
console.log(toBigFloat(123.456).toString());
// Output: "123.456"
// Convert string
console.log(toBigFloat("12345.6789").toString());
// Output: "12345.6789"
explorerUrl
The explorerUrl
function generates blockchain explorer URLs for transactions, addresses, and blocks. It supports multiple blockchain networks and allows customization of the base URL and paths.
Features
- Generates URLs for transactions, addresses, and blocks.
- Supports Ethereum, Arbitrum, Polygon, Binance Smart Chain, Optimism, Fantom, Avalanche, Solana, Tron, and Cosmos.
- Allows customization of the base URL and path segments.
Usage
Basic Usage
import { explorerUrl } from 'common-crypto-tools';
// Ethereum Explorer
const ethExplorer = explorerUrl("ethereum");
console.log(ethExplorer.tx("0x123")); // Output: https://etherscan.io/tx/0x123
console.log(ethExplorer.address("0xabc")); // Output: https://etherscan.io/address/0xabc
console.log(ethExplorer.block(123456)); // Output: https://etherscan.io/block/123456
// Polygon Explorer
const polygonExplorer = explorerUrl("polygon");
console.log(polygonExplorer.tx("0x456")); // Output: https://polygonscan.com/tx/0x456
Customization
// Custom Ethereum Explorer
const customEthExplorer = explorerUrl("ethereum", {
base: "https://custom.etherscan.io",
tx: "transaction",
address: "addr",
block: "blk",
});
console.log(customEthExplorer.tx("0x123")); // Output: https://custom.etherscan.io/transaction/0x123
console.log(customEthExplorer.address("0xabc")); // Output: https://custom.etherscan.io/addr/0xabc
console.log(customEthExplorer.block(123456)); // Output: https://custom.etherscan.io/blk/123456
Error Handling
// Unsupported Network
try {
explorerUrl("unknown");
} catch (error) {
console.error(error.message); // Output: "Unsupported network: unknown"
}
8 months ago
8 months ago
8 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago