ExtensionManager
class ExtensionManager implements DetectableFeature {}
function constructor(  contractWrapper: ContractWrapper<BaseRouter>,
function get(  extensionName: string,): Promise<{  functions: Array<{    functionSelector: string | Array<number>;    functionSignature: string;  }>;  metadata: {    implementation: string;    metadataURI: string;    name: string;  };}>;
READ FUNCTIONS
function getAll(): Promise<  Array<{    functions: Array<{      functionSelector: string | Array<number>;      functionSignature: string;    }>;    metadata: {      implementation: string;      metadataURI: string;      name: string;    };  }>>;
function getAllFunctions(  extensionName: string,): Promise<  Array<{    functionSelector: string | Array<number>;    functionSignature: string;  }>>;
function getExtensionAddress(extensionName: string): Promise<string>;
function getExtensionAddressForFunction(  functionInput: FunctionInput,): Promise<string>;
function getExtensionForFunction(  functionInput: FunctionInput,): Promise<{  implementation: string;  metadataURI: string;  name: string;}>;
function add(inputArgs: {  extension: {    functions: Array<{      functionSelector: string | Array<number>;      functionSignature: string;    }>;    metadata: {      implementation: string;      metadataURI: string;      name: string;    };  };  extensionAbi?: ContractInterface;}): Promise<TResult>;
Preparable
You can also prepare the transaction without executing it by calling add.prepare() with same arguments.Learn more
function addDeployed(inputArgs: {  extensionAbi?: ContractInterface;  extensionAddress: string;  extensionName: string;}): Promise<TResult>;
let inputArgs: {  extensionAbi?: ContractInterface;  extensionAddress: string;  extensionName: string;};
Preparable
You can also prepare the transaction without executing it by calling addDeployed.prepare() with same arguments.Learn more
function addPublished(inputArgs: {  extensionName: string;  publisherAddress?: string;  version?: string;}): Promise<TResult>;
let inputArgs: {  extensionName: string;  publisherAddress?: string;  version?: string;};
Preparable
You can also prepare the transaction without executing it by calling addPublished.prepare() with same arguments.Learn more
function remove(inputArgs: {  extensionName: string;}): Promise<TResult>;
Preparable
You can also prepare the transaction without executing it by calling remove.prepare() with same arguments.Learn more
function replace(inputArgs: {  extension: {    functions: Array<{      functionSelector: string | Array<number>;      functionSignature: string;    }>;    metadata: {      implementation: string;      metadataURI: string;      name: string;    };  };  extensionAbi?: ContractInterface;}): Promise<TResult>;
Preparable
You can also prepare the transaction without executing it by calling replace.prepare() with same arguments.Learn more
function replaceDeployed(inputArgs: {  extensionAbi?: ContractInterface;  extensionAddress: string;  extensionName: string;}): Promise<TResult>;
let inputArgs: {  extensionAbi?: ContractInterface;  extensionAddress: string;  extensionName: string;};
Preparable
You can also prepare the transaction without executing it by calling replaceDeployed.prepare() with same arguments.Learn more
function replacePublished(inputArgs: {  extensionName: string;  publisherAddress?: string;  version?: string;}): Promise<TResult>;
let inputArgs: {  extensionName: string;  publisherAddress?: string;  version?: string;};
Preparable
You can also prepare the transaction without executing it by calling replacePublished.prepare() with same arguments.Learn more
let featureName: "DynamicContract";