@gamechanger-finance/gc
Version:
Official GameChanger Wallet library and CLI for integrating with Cardano dapps and solve other tasks (https://gamechanger.finance/)
91 lines (90 loc) • 2.75 kB
TypeScript
export type NetworkType = 'preprod' | 'mainnet';
export type APIEncoding = 'json-url-lzw' | 'json-url-lzma' | 'gzip' | 'base64url';
export type APIVersion = '1' | '2';
export type EncodingHandler = {
name: string;
encoder: (obj: any, options?: any) => Promise<string>;
decoder: (msg: string, options?: any) => Promise<any>;
};
export type HandlerInputType = {
apiVersion: '1';
network: NetworkType;
encoding: 'json-url-lzw';
inputData: string;
} | {
apiVersion: '2';
network: NetworkType;
encoding: 'json-url-lzma' | 'gzip' | 'base64url';
inputData: string;
};
export type CLIHandlerContext = {
apiVersion: APIVersion;
network: NetworkType;
encoding: APIEncoding;
input: string;
/**
* Optional wallet referral address appended by the handlers as
* the URL query string parameter `ref`.
*/
refAddress?: string;
/**
* When true, handlers skip appending the default `networkTag` query string
* parameter to generated wallet URLs.
*/
disableNetworkRouter?: boolean;
/**
* Optional wallet URL pattern override.
*
* When provided, handlers will use this URL pattern instead of the built-in
* network default, as long as it is a valid absolute URL and contains the
* required `{gcscript}` placeholder.
*/
urlPattern?: string;
/**
* Optional per-token overrides for generated code snippets.
*
* Keys can match snippet token keys (e.g. `title`, `twitterUrl`) or raw
* placeholder strings (advanced usage). Values are injected as-is.
*/
snippetArgs?: SnippetArgs;
outputFile?: string;
template?: string;
styles?: string;
debug?: boolean;
};
/**
* Snippet template customization map.
*
* Values are injected as-is into snippet templates. For JS-literal placeholders
* (such as apiVersion/network/encoding/urlPattern) provide a valid JS literal.
*
* Special key:
* - `defaultIntents`: overrides the whole default intents object literal and
* allows comments.
*/
export type SnippetArgs = {
[key: string]: string | undefined;
defaultIntents?: string;
};
export type SourceType = {
[name: string]: () => Promise<any>;
};
export type ActionHandlerLoaderType = {
[action: string]: {
[name: string]: () => Promise<(input: CLIHandlerContext) => any>;
};
};
export type ActionHandlerType = {
[action: string]: {
[name: string]: (input: CLIHandlerContext) => any;
};
};
export type ExecuteType = {
network: NetworkType;
action: (input: HandlerInputType) => Promise<any>;
source: () => Promise<string>;
};
export type ObjectType = {
[name: string]: any;
};
export type QRTemplateType = 'boxed' | 'printable';