@chainsafe/filsnap-adapter
Version:
Adapter for installing Filsnap
58 lines (45 loc) • 2.07 kB
Markdown

[](https://opensource.org/licenses/MIT)
[](https://opensource.org/licenses/Apache-2.0)


FilSnap adapter is used to install Filecoin snap and expose API toward snap.
For more details on Filecoin snap itself see [snap repo](https://github.com/chainsafe/filsnap) or read full [Filecoin snap documentation](https://github.com/chainsafe/filsnap/wiki).
Adapter has only exposed function for installing Filecoin snap.
```typescript
async function enableFilecoinSnap(
config: Partial<SnapConfig>,
snapOrigin?: string
): Promise<MetamaskFilecoinSnap>
```
On snap installation, it is possible to send full or partial configuration.
If you only provide `network` property a predefined configuration for the specified network will be used.
Other properties are optional but will override default values if provided.
Below you can see structure of config object:
```typescript
export interface SnapConfig {
derivationPath: string;
token: string;
network: FilecoinNetwork; // "f" || "t"
rpcUrl: string;
unit?: UnitConfiguration;
}
export interface UnitConfiguration {
symbol: string;
decimals: number;
image?: string;
customViewUrl?: string;
}
```
After snap installation, this function returns `MetamaskFilecoinSnap` object that can be used to retrieve snap API.
An example of initializing Filecoin snap and invoking snap API is shown below.
```typescript
// install snap and fetch API
const snap = await enableFilecoinSnap({network: "t"});
const api = await metamaskFilecoinSnap.getFilecoinSnapApi();
// invoke API
const address = await api.getAddress();
console.log(`Snap installed, account generated with address: ${address}`);
```