As always, if you need any help, message us on Discord!
You'll need the following installed before building your plugin:
You'll be using TypeScript to implement your Polywrap plugin.
In the future, TypeScript will be one of many supported languages for implementing plugins. As more Polywrap Clients are released in various languages, implementing plugins in those languages will be supported as well.
To get started, use the following command to spin up a project folder for your plugin.
<project-name> is replaced with a custom name of your choosing. For example
Once complete, you'll see a new folder appear, named after the custom name you've chosen. Please navigate into this new directory (using
cd for example).
Let's ensure all of your project's dependencies are installed. From inside your project's directory, simply run:
nvm install && nvm use
Your project should look something like this:
web3api.plugin.yaml manifest file describes the layout of a plugin, and is used to determine how many modules this plugin has.
The entry file simply exports all necessary types from the codegen directory. This file shouldn't need to be modified, unless you'd like to override default behaviour (with caution).
Query & Mutation are 2 separate "modules" that exist within the plugin.
Each plugin module has a schema. This schema defines the module's: dependencies, methods, and custom types. In short, it's an interface describing how to use the plugin.
index.ts file contains the module method's implementations, which implement the plugin's logic.
Within each module's index file, you can expose custom configurations for the module. These configurations can contain application specific contextual data, such as: providers, settings, signing keys, etc.
To build your plugin, all you need is the following command: