@aldea/sdk / Exports / BCS
Class: BCS
BCS implementation for Aldea builtins and types as defined in an ABI.
Usage
Instantitate BCS with an ABI document. From then, any Jig or function/method args can be encoded/decoded. Methods can be matched using the <JIG_NAME>($|_)<METHOD_NAME> convention, where $ matches an instance method and _ matches a static method.
const bcs = new BCS(abi)
// Encoding Jig state
const encoded = bcs.encode('MyJig', values)
const decoded = bcs.decode('MyJig', encoded)
// Encoding method args
const encoded = bcs.encode('MyJig$update', args)
const decoded = bcs.decode('MyJig$update', encoded)Optionally a BCS instance can be instantiated with support for serializing and deserializing ABI documents and Package bundles.
const bcs = new BCS({ addAbiTypes: true, addPkgTypes: true })
const encodedAbi = bcs.encode('abi', abi)
const encodedPkg = bcs.encode('pkg', pkg)Table of contents
Constructors
Properties
- abi
- collectJigFieldTypes
- collectMethodArgTypes
- decodeType
- decodeTypes
- encodeType
- encodeTypes
- jigNames
- registerAbiTypes
- registerMagicTypes
- registerPkgTypes
- registerPrimitiveTypes
- typeEncoders
- pkg
Methods
Constructors
constructor
• new BCS(abiOrOpts, options?): BCS
Parameters
| Name | Type |
|---|---|
abiOrOpts | Abi | Partial<BCSOpts> |
options? | Partial<BCSOpts> |
Returns
Defined in
packages/core/dist/bcs.d.ts:62
Properties
abi
• Private Optional abi: any
Defined in
packages/core/dist/bcs.d.ts:59
collectJigFieldTypes
• Private collectJigFieldTypes: any
Defined in
packages/core/dist/bcs.d.ts:94
collectMethodArgTypes
• Private collectMethodArgTypes: any
Defined in
packages/core/dist/bcs.d.ts:95
decodeType
• Private decodeType: any
Defined in
packages/core/dist/bcs.d.ts:91
decodeTypes
• Private decodeTypes: any
Defined in
packages/core/dist/bcs.d.ts:90
encodeType
• Private encodeType: any
Defined in
packages/core/dist/bcs.d.ts:93
encodeTypes
• Private encodeTypes: any
Defined in
packages/core/dist/bcs.d.ts:92
jigNames
• Private jigNames: any
Defined in
packages/core/dist/bcs.d.ts:60
registerAbiTypes
• Private registerAbiTypes: any
Defined in
packages/core/dist/bcs.d.ts:98
registerMagicTypes
• Private registerMagicTypes: any
Defined in
packages/core/dist/bcs.d.ts:97
registerPkgTypes
• Private registerPkgTypes: any
Defined in
packages/core/dist/bcs.d.ts:99
registerPrimitiveTypes
• Private registerPrimitiveTypes: any
Defined in
packages/core/dist/bcs.d.ts:96
typeEncoders
• Private typeEncoders: any
Defined in
packages/core/dist/bcs.d.ts:61
pkg
▪ Static pkg: BCSMini<[string[], Map<string, string>]>
Defined in
packages/core/dist/bcs.d.ts:58
Methods
decode
▸ decode(name, data): any
Decodes the given data using the specified type encoder.
Parameters
| Name | Type |
|---|---|
name | string |
data | Uint8Array |
Returns
any
Defined in
packages/core/dist/bcs.d.ts:66
encode
▸ encode(name, val, writer?): Uint8Array
Encoders the given value(s) using the specified type encoder.
Parameters
| Name | Type |
|---|---|
name | string |
val | any |
writer? | BufWriter |
Returns
Uint8Array
Defined in
packages/core/dist/bcs.d.ts:70
getTypeEncoder
▸ getTypeEncoder<T>(name): BCSEncoder<T>
Returns the registered BCSEncoder for the given type name.
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
name | string |
Returns
BCSEncoder<T>
Defined in
packages/core/dist/bcs.d.ts:74
registerObjectType
▸ registerObjectType(name, fields): void
Registers the given array of FieldNode's as an object type encoder.
Parameters
| Name | Type |
|---|---|
name | string |
fields | FieldNode[] |
Returns
void
Defined in
packages/core/dist/bcs.d.ts:82
registerTupleType
▸ registerTupleType(name, types): void
Registers the given array of TypeNode's as a tuple type encoder.
The work tuple is used here to describe a fixed length list of variable types. In terms of Aldea, this would apple to function/method arguments.
Parameters
| Name | Type |
|---|---|
name | string |
types | TypeNode[] |
Returns
void
Defined in
packages/core/dist/bcs.d.ts:89
registerType
▸ registerType<T>(name, encoder): void
Registers the given type encoder.
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type |
|---|---|
name | string |
encoder | BCSEncoderInitParams<T> |
Returns
void
Defined in
packages/core/dist/bcs.d.ts:78