@arkiv-network/sdk
Version:
TypeScript client library for Arkiv's blockchains interactions
122 lines (121 loc) • 4.04 kB
text/typescript
import * as viem8 from "viem";
//#region src/chains/localhost.d.ts
/**
* A node running on the local machine
*/
declare const localhost: {
blockExplorers?: {
[key: string]: {
name: string;
url: string;
apiUrl?: string | undefined;
};
default: {
name: string;
url: string;
apiUrl?: string | undefined;
};
} | undefined | undefined;
blockTime?: number | undefined | undefined;
contracts?: {
[x: string]: viem8.ChainContract | {
[sourceId: number]: viem8.ChainContract | undefined;
} | undefined;
ensRegistry?: viem8.ChainContract | undefined;
ensUniversalResolver?: viem8.ChainContract | undefined;
multicall3?: viem8.ChainContract | undefined;
erc6492Verifier?: viem8.ChainContract | undefined;
} | undefined;
ensTlds?: readonly string[] | undefined;
id: 1337;
name: "Localhost";
nativeCurrency: {
readonly decimals: 18;
readonly name: "Ether";
readonly symbol: "ETH";
};
experimental_preconfirmationTime?: number | undefined | undefined;
rpcUrls: {
readonly default: {
readonly http: readonly ["http://127.0.0.1:8545"];
};
};
sourceId?: number | undefined | undefined;
testnet?: boolean | undefined | undefined;
custom?: Record<string, unknown> | undefined;
fees?: viem8.ChainFees<undefined> | undefined;
formatters?: undefined;
serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
};
//#endregion
//#region src/chains/rabdi.d.ts
type ArkivChainOptions = {
/**
* An Arkiv RPC access key, sent as the last segment of the RPC URLs' path. It is not a secret, as
* it ships with any app that talks to the chain, but restrict it to your origins or IPs. Get a
* free one at https://hub.arkiv.network/access-keys.
*
* `""` uses the public endpoint, which is heavily rate limited.
*/
accessKey: string;
};
/**
* Rabdi is Arkiv's testnet. The chain carries the access key in its RPC URLs, so every transport
* that defaults to the chain's URL (`http()`, `webSocket()`, wagmi's transports) and every wallet
* the chain is added to sends it.
*
* @throws {MissingAccessKeyError} When the key is missing. Pass `""` to go without one
*
* @example
* import { createPublicClient } from "@arkiv-network/sdk"
* import { rabdi } from "@arkiv-network/sdk/chains"
* import { http } from "viem"
*
* const client = createPublicClient({
* chain: rabdi({ accessKey: "..." }),
* transport: http(),
* })
*/
declare function rabdi(options: ArkivChainOptions): {
blockExplorers: {
readonly default: {
readonly name: "Rabdi Explorer";
readonly url: "https://rabdi.explorer.arkiv.network";
};
};
blockTime?: number | undefined | undefined;
contracts?: {
[x: string]: viem8.ChainContract | {
[sourceId: number]: viem8.ChainContract | undefined;
} | undefined;
ensRegistry?: viem8.ChainContract | undefined;
ensUniversalResolver?: viem8.ChainContract | undefined;
multicall3?: viem8.ChainContract | undefined;
erc6492Verifier?: viem8.ChainContract | undefined;
} | undefined;
ensTlds?: readonly string[] | undefined;
id: 7794095;
name: "Rabdi";
nativeCurrency: {
readonly name: "Golem";
readonly symbol: "tGLM";
readonly decimals: 18;
};
experimental_preconfirmationTime?: number | undefined | undefined;
rpcUrls: {
readonly default: {
readonly http: readonly [`https://rpc.rabdi.db-chain.testnet.arkiv.network${string}`];
readonly webSocket: readonly [`wss://rpc.rabdi.db-chain.testnet.arkiv.network${string}`];
};
};
sourceId?: number | undefined | undefined;
testnet: true;
custom?: Record<string, unknown> | undefined;
fees?: viem8.ChainFees<undefined> | undefined;
formatters?: undefined;
serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
readonly network: "rabdi";
};
//#endregion
export { type ArkivChainOptions, localhost, rabdi };
//# sourceMappingURL=index.d.cts.map