@proto-kit/sdk • Docs
Documentation / @proto-kit/sdk / TestingAppChain
Class: TestingAppChain<AppChainModules>
AppChain acts as a wrapper connecting Runtime, Protocol and Sequencer
Extends
ClientAppChain<AppChainModules>
Type Parameters
• AppChainModules extends MinimalAppChainDefinition
Constructors
new TestingAppChain()
new TestingAppChain<
AppChainModules>(definition):TestingAppChain<AppChainModules>
Parameters
• definition: AppChainModules
Returns
TestingAppChain<AppChainModules>
Inherited from
Defined in
sequencer/dist/appChain/AppChain.d.ts:18
Properties
currentConfig
protectedcurrentConfig:undefined|CombinedModuleContainerConfig<AppChainModules,NoConfig>
Store the config separately, so that we can apply additional checks when retrieving it via the getter
Inherited from
Defined in
common/dist/config/ConfigurableModule.d.ts:17
definition
definition:
AppChainModules
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:61
Accessors
config
Get Signature
get config():
CombinedModuleContainerConfig<Modules,ContainerConfig>
Returns
CombinedModuleContainerConfig<Modules, ContainerConfig>
Set Signature
set config(
config):void
Parameters
• config: CombinedModuleContainerConfig<Modules, ContainerConfig>
Returns
void
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:121
container
Get Signature
get
protectedcontainer():DependencyContainer
Returns
DependencyContainer
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:86
containerConfig
Get Signature
get containerConfig():
ContainerConfig
Returns the container’s own configuration.
Returns
ContainerConfig
Inherited from
ClientAppChain.containerConfig
Defined in
common/dist/config/ModuleContainer.d.ts:73
dependencyContainer
Get Signature
get dependencyContainer():
DependencyContainer
Returns
DependencyContainer
Inherited from
ClientAppChain.dependencyContainer
Defined in
common/dist/config/ModuleContainer.d.ts:167
events
Get Signature
get events():
EventEmitterProxy<Modules>
Returns
EventEmitterProxy<Modules>
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:105
moduleNames
Get Signature
get moduleNames():
string[]
Returns
string[]
list of module names
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:77
protocol
Get Signature
get protocol():
InstanceType<Modules["Protocol"]>
Returns
InstanceType<Modules["Protocol"]>
Inherited from
Defined in
sequencer/dist/appChain/AppChain.d.ts:21
query
Get Signature
get query():
QueryService<InferModules<AppChainModules["Runtime"]>,InferModules<AppChainModules["Protocol"]>>
Returns
QueryService<InferModules<AppChainModules["Runtime"]>, InferModules<AppChainModules["Protocol"]>>
Inherited from
Defined in
sdk/src/client/ClientAppChain.ts:190
runtime
Get Signature
get runtime():
InstanceType<Modules["Runtime"]>
Returns
InstanceType<Modules["Runtime"]>
Inherited from
Defined in
sequencer/dist/appChain/AppChain.d.ts:19
sequencer
Get Signature
get sequencer():
InstanceType<Modules["Sequencer"]>
Returns
InstanceType<Modules["Sequencer"]>
Inherited from
Defined in
sequencer/dist/appChain/AppChain.d.ts:20
Methods
assertContainerInitialized()
assertContainerInitialized(
container):asserts container is DependencyContainer
Parameters
• container: undefined | DependencyContainer
Returns
asserts container is DependencyContainer
Inherited from
ClientAppChain.assertContainerInitialized
Defined in
common/dist/config/ModuleContainer.d.ts:95
assertIsValidModuleName()
assertIsValidModuleName(
moduleName):asserts moduleName is StringKeyOf<AppChainModules>
Assert that the iterated moduleName is of ModuleName type,
otherwise it may be just string e.g. when modules are iterated over
using e.g. a for loop.
Parameters
• moduleName: string
Returns
asserts moduleName is StringKeyOf<AppChainModules>
Inherited from
ClientAppChain.assertIsValidModuleName
Defined in
common/dist/config/ModuleContainer.d.ts:92
close()
close():
Promise<void>
Returns
Promise<void>
Inherited from
Defined in
sequencer/dist/appChain/AppChain.d.ts:26
configure()
configure(
config):void
Provide additional configuration after the ModuleContainer was created.
Keep in mind that modules are only decorated once after they are resolved, therefore applying any configuration must happen before the first resolution.
Parameters
• config: CombinedModuleContainerConfig<AppChainModules, NoConfig>
Returns
void
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:119
configurePartial()
configurePartial(
config):void
Parameters
• config: RecursivePartial<CombinedModuleContainerConfig<AppChainModules, NoConfig>>
Returns
void
Inherited from
ClientAppChain.configurePartial
Defined in
common/dist/config/ModuleContainer.d.ts:120
create()
create(
childContainerProvider):void
This is a placeholder for individual modules to override. This method will be called whenever the underlying container fully initialized
Parameters
• childContainerProvider: ChildContainerProvider
Returns
void
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:166
decorateModule()
protecteddecorateModule(moduleName,containedModule):void
Override this in the child class to provide custom features or module checks
Parameters
• moduleName: StringKeyOf<AppChainModules>
• containedModule: InstanceType<AppChainModules[StringKeyOf<AppChainModules>]>
Returns
void
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:139
initializeDependencyFactories()
protectedinitializeDependencyFactories(factories):void
Inject a set of dependencies using the given list of DependencyFactories This method should be called during startup
Parameters
• factories: StringKeyOf<AppChainModules>[]
Returns
void
Inherited from
ClientAppChain.initializeDependencyFactories
Defined in
common/dist/config/ModuleContainer.d.ts:145
isValidModuleName()
isValidModuleName(
modules,moduleName):moduleName is StringKeyOf<AppChainModules>
Parameters
• modules: AppChainModules
• moduleName: string | number | symbol
Returns
moduleName is StringKeyOf<AppChainModules>
Inherited from
ClientAppChain.isValidModuleName
Defined in
common/dist/config/ModuleContainer.d.ts:93
onAfterModuleResolution()
protectedonAfterModuleResolution(moduleName):void
Handle module resolution, e.g. by decorating resolved modules
Parameters
• moduleName: StringKeyOf<AppChainModules>
Returns
void
Inherited from
ClientAppChain.onAfterModuleResolution
Defined in
common/dist/config/ModuleContainer.d.ts:160
produceBlock()
produceBlock():
Promise<undefined|Block>
Returns
Promise<undefined | Block>
Defined in
sdk/src/testing/TestingAppChain.ts:96
produceBlockWithResult()
produceBlockWithResult():
Promise<undefined|BlockWithResult>
Returns
Promise<undefined | BlockWithResult>
Defined in
sdk/src/testing/TestingAppChain.ts:105
registerAliases()
protectedregisterAliases(originalToken,clas):void
Parameters
• originalToken: string
• clas: TypedClass<any>
Returns
void
Inherited from
ClientAppChain.registerAliases
Defined in
common/dist/config/ModuleContainer.d.ts:96
registerModules()
protectedregisterModules(modules):void
Register modules into the current container, and registers a respective resolution hook in order to decorate the module upon/after resolution.
Parameters
• modules: AppChainModules
Returns
void
Inherited from
ClientAppChain.registerModules
Defined in
common/dist/config/ModuleContainer.d.ts:104
registerValue()
registerValue<
Value>(modules):void
Register a non-module value into the current container
Type Parameters
• Value
Parameters
• modules: Record<string, Value>
Returns
void
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:110
resolve()
resolve<
KeyType>(moduleName):InstanceType<ResolvableModules<AppChainModules>[KeyType]>
Resolves a module from the current module container
We have to narrow down the ModuleName type here to
ResolvableModuleName, otherwise the resolved value might
be any module instance, not the one specifically requested as argument.
Type Parameters
• KeyType extends string
Parameters
• moduleName: KeyType
Returns
InstanceType<ResolvableModules<AppChainModules>[KeyType]>
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:133
resolveOrFail()
resolveOrFail<
ModuleType>(moduleName,moduleType?):ModuleType
Type Parameters
• ModuleType
Parameters
• moduleName: string
• moduleType?: TypedClass<ModuleType>
Returns
ModuleType
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:134
setSigner()
setSigner(
signer):void
Parameters
• signer: PrivateKey
Returns
void
Defined in
sdk/src/testing/TestingAppChain.ts:91
start()
start(
proofsEnabled?,dependencyContainer?):Promise<void>
Starts the appchain and cross-registers runtime to sequencer
Parameters
• proofsEnabled?: boolean
• dependencyContainer?: DependencyContainer
Returns
Promise<void>
Inherited from
Defined in
sequencer/dist/appChain/AppChain.d.ts:25
transaction()
transaction(
sender,callback,options?):Promise<AppChainTransaction>
Parameters
• sender: PublicKey
• callback
• options?
• options.nonce?: number
Returns
Promise<AppChainTransaction>
Inherited from
Defined in
sdk/src/client/ClientAppChain.ts:104
validateModule()
protectedvalidateModule(moduleName,containedModule):void
Check if the provided module satisfies the container requirements, such as only injecting other known modules.
Parameters
• moduleName: StringKeyOf<AppChainModules>
• containedModule: ConfigurableModule<unknown>
Returns
void
Inherited from
Defined in
common/dist/config/ModuleContainer.d.ts:85
from()
staticfrom<Modules>(definition):ClientAppChain<Modules>
Type Parameters
• Modules extends MinimalAppChainDefinition
Parameters
• definition: Modules
Returns
ClientAppChain<Modules>
Inherited from
Defined in
sdk/src/client/ClientAppChain.ts:51
fromRemoteEndpoint()
staticfromRemoteEndpoint<RuntimeModules,ProtocolModules,SignerType>(runtime,protocol,signer):ClientAppChain<object>
Type Parameters
• RuntimeModules extends RuntimeModulesRecord
• ProtocolModules extends ProtocolModulesRecord & MandatoryProtocolModulesRecord
• SignerType extends Signer & AppChainModule<unknown>
Parameters
• runtime: TypedClass<Runtime<RuntimeModules>>
• protocol: TypedClass<Protocol<ProtocolModules>>
• signer: TypedClass<SignerType>
Returns
ClientAppChain<object>
GraphqlClient
GraphqlClient: typeof
GraphqlClient
NetworkStateTransportModule
NetworkStateTransportModule: typeof
GraphqlNetworkStateTransportModule=GraphqlNetworkStateTransportModule
Protocol
Protocol:
TypedClass<Protocol<ProtocolModules>> =protocol
QueryTransportModule
QueryTransportModule: typeof
GraphqlQueryTransportModule=GraphqlQueryTransportModule
Runtime
Runtime:
TypedClass<Runtime<RuntimeModules>> =runtime
Sequencer
Sequencer:
TypedClass<Sequencer<object>>
Signer
Signer:
TypedClass<SignerType> =signer
TransactionSender
TransactionSender: typeof
GraphqlTransactionSender=GraphqlTransactionSender
Inherited from
ClientAppChain.fromRemoteEndpoint
Defined in
sdk/src/client/ClientAppChain.ts:57
fromRuntime()
staticfromRuntime<RuntimeModules>(runtimeModules):TestingAppChain<object>
Type Parameters
• RuntimeModules extends RuntimeModulesRecord & PartialVanillaRuntimeModulesRecord
Parameters
• runtimeModules: RuntimeModules
Returns
TestingAppChain<object>
BlockExplorerTransportModule
BlockExplorerTransportModule: typeof
InMemoryBlockExplorer=InMemoryBlockExplorer
NetworkStateTransportModule
NetworkStateTransportModule: typeof
BlockStorageNetworkStateModule=BlockStorageNetworkStateModule
Protocol
Protocol:
TypedClass<Protocol<MandatoryProtocolModulesRecord&object>>
QueryTransportModule
QueryTransportModule: typeof
StateServiceQueryModule=StateServiceQueryModule
Runtime
Runtime:
TypedClass<Runtime<object&RuntimeModules>>
Sequencer
Sequencer:
TypedClass<Sequencer<object>>
Signer
Signer: typeof
InMemorySigner=InMemorySigner
TransactionSender
TransactionSender: typeof
InMemoryTransactionSender=InMemoryTransactionSender