UNPKG

js-moi-utils

Version:

Collection of utility functions used in js-moi-sdk.

410 lines (393 loc) 8.73 kB
export const logicSchema = { kind: "struct", fields: { manifest: { kind: "bytes" }, logic_id: { kind: "bytes" }, callsite: { kind: "string" }, calldata: { kind: "bytes" }, interface: { kind: "map", fields: { keys: { kind: "string" }, values: { kind: "string" } } } } } export const assetCreateSchema = { kind: "struct", fields: { symbol: { kind: "string" }, dimension: { kind: "integer" }, decimals: { kind: "integer" }, standard: { kind: "integer" }, enable_events: { kind: "bool" }, manager: { kind: "bytes" }, max_supply: { kind: "integer" }, static_metadata: { kind: "map", fields: { keys: { kind: "string" }, values: { kind: "bytes" } } }, dynamic_metadata: { kind: "map", fields: { keys: { kind: "string" }, values: { kind: "bytes" } } }, logic_payload: logicSchema, } } export const assetActionSchema = { kind: "struct", fields: { asset_id: { kind: "bytes" }, callsite: { kind: "string" }, calldata: { kind: "bytes" }, funds: { kind: "map", fields: { keys: { kind: "string" }, values: { kind: "integer" } } } } } export const keyAddSchema = { kind: "struct", fields: { public_key: { kind: "bytes" }, weight: { kind: "integer" }, signature_algorithm: { kind: "integer" } } } export const keyRevokeSchema = { kind: "struct", fields: { key_id: { kind: "integer" } } } export const participantCreateSchema = { kind: "struct", fields: { id: { kind: "bytes" }, keys_payload: { kind: "array", fields: { values: keyAddSchema } }, value: assetActionSchema, } } export const accountConfigureSchema = { kind: "struct", fields: { add: { kind: "array", fields: { values: keyAddSchema } }, revoke: { kind: "array", fields: { values: keyRevokeSchema } }, } } export const accountInheritSchema = { kind: "struct", fields: { target_account: { kind: "bytes" }, value: assetActionSchema, sub_account_index: { kind: "integer" } } } export const storagePayloadSchema = { kind: "struct", fields: { target_account: { kind: "bytes" }, deposit_for: { kind: "bytes" }, amount: { kind: "integer" }, bytes_to_release: { kind: "integer" } } } export const callerConstraintSchema = { kind: "struct", fields: { kind: { kind: "integer" }, set: { kind: "array", fields: { values: { kind: "bytes" } } } } } export const accessPolicySchema = { kind: "struct", fields: { resource: { kind: "integer" }, resource_id: { kind: "bytes" }, actions: { kind: "integer" }, scope: { kind: "struct", fields: { prefixes: { kind: "array", fields: { values: { kind: "bytes" } } }, // Reserved/unused on the blockchain's side (always nil in v1), but the field still // occupies its ordered slot on the wire - must encode as an explicit POLO // null, not be omitted, or every field after it misaligns on decode. predicate: { kind: "null" } } }, caller: callerConstraintSchema, origin: callerConstraintSchema, } } export const accessPayloadSchema = { kind: "struct", fields: { target_account: { kind: "bytes" }, access_policy: accessPolicySchema, } } export const accessDeletePayloadSchema = { kind: "struct", fields: { target_account: { kind: "bytes" }, resource: { kind: "integer" }, resource_id: { kind: "bytes" } } } export const ixObjectSchema = { kind: "struct", fields: { sender: { kind: "struct", fields: { id: { kind: "bytes" }, sequence: { kind: "integer" }, key_id: { kind: "integer" } } }, payer: { kind: "bytes" }, fuel_price: { kind: "integer" }, fuel_limit: { kind: "integer" }, funds: { kind: "array", fields: { values: { kind: "struct", fields: { asset_id: { kind: "bytes" }, amount: { kind: "integer" } } } } }, ix_operations: { kind: "array", fields: { values: { kind: "struct", fields: { type: { kind: "integer" }, payload: { kind: "bytes" } } } } }, participants: { kind: "array", fields: { values: { kind: "struct", fields: { id: { kind: "bytes" }, lock_type: { kind: "integer" }, notary: { kind: "bool" } } } } }, preferences: { kind: "struct", fields: { compute: { kind: "bytes" }, consensus: { kind: "struct", fields: { mtq: { kind: "integer" }, trusted_nodes: { kind: "array", fields: { values: { kind: "string" } } } } } } }, perception: { kind: "bytes" }, } } export const ixSignatureSchema = { kind: "struct", fields: { id: { kind: "bytes" }, key_id: { kind: "integer" }, signature: { kind: "bytes" } } } export const ixSignaturesSchema = { kind: "array", fields: { values: ixSignatureSchema } } export const builtInLogEventSchema = { kind: "struct", fields: { value: { kind: "string" } } }