Subshell API

On start, Subshell creates a global namespace that contains the Subshell public API, defined as:

interface SubshellExtensionBridge {
  async selectAccount(): Promise<string|null>;
  async web3Accounts(): Promise<InjectedAccountWithMeta[]>;
  async signRaw({ address, data }: SignerPayloadRaw): Promise<SignerResult>;
  async signPayload(payload: SignerPayloadJSON): Promise<SignerResult>;
}

declare namespace Subshell {
  extension?: SubshellExtensionBridge;
}