@gamechanger-finance/unimatrix • Docs
Home / unimatrix-sync-cardano
A set of helpers to standardize a basic data exchange protocol to share Cardano transactions and signatures using Unimatrix
A module for Cardano built on top of the Unimatrix library, with custom validators, encryption functions and data types fully compatible with cardano-serialization-lib.
Main use case are multi-signature or deferred-signature scenarios involving wallets, dapps and services on the Cardano Blockchain
Validators and their matching data types:
- Items
cardano.vkWitnessHex
: transaction key witness (signature) in hexadecimal encodingcardano.txHex
: transaction CBOR structure in hexadecimal encoding
- Announcements
cardano.TxHashHexList
: list of transaction hash strings
type CardanoValidatorTag: "cardano.TxHashHexList" | "cardano.vkWitnessHex" | "cardano.txHex";
Validator tags for Cardano and it's data types
type DLTTag: "cardano" | "forkano" | "guild" | "shareslake";
Name of Cardano or Cardano-based chain
type NetworkTag: "mainnet" | "preprod" | "preview" | "legacy";
Name of Cardano or Cardano-based chain network
function cardanoValidatorsFactory(CSL): UnimatrixValidatorMap
Function that generates the map of validators for Cardano (UnimatrixValidatorMap
), using cardano-serialization-lib's classes underneath.
Parameter | Type | Description |
---|---|---|
CSL |
any |
function decryptDataFactory(CSL): UnimatrixDecryptFn
Function that generates an UnimatrixDecryptFn
using cardano-serialization-lib's decrypt_with_password()
underneath
Parameter | Type | Description |
---|---|---|
CSL |
any |
function encryptDataFactory(CSL): UnimatrixEncryptFn
Function that generates an UnimatrixEncryptFn
using cardano-serialization-lib's encrypt_with_password()
underneath
Parameter | Type | Description |
---|---|---|
CSL |
any |
function genTxHashesKey(args): {
key: string;
path: string;
}
Helper that generates the key for the GunDB key-value structure used for storing a list of transaction hashes
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.subPath ? |
string [] |
- |
{
key: string;
path: string;
}
Member | Type |
---|---|
key |
string |
path |
string |
function genTxHexKey(args): {
key: string;
path: string;
}
Helper that generates the key for the GunDB key-value structure used for storing a transaction CBOR structure
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.txHash |
string |
- |
{
key: string;
path: string;
}
Member | Type |
---|---|
key |
string |
path |
string |
function genUnimatrixIdFromTxHashes(txHashes): string
Helper function that generates a hash string out of a list of transaction hash strings.
Some clients like GameChanger Wallet uses it for establishing private channels. The generated strings are used as private unique channel IDs based on built transactions that are not yet signed nor submitted to the blockchain, meaning that these IDs are only known by this transaction builder user and whomever this user shares them with.
Parameter | Type | Description |
---|---|---|
txHashes |
string [] |
string
function genVkWitnessHexKey(args): {
key: string;
path: string;
}
Helper that generates the key for the GunDB key-value structure used for storing a transaction key witness
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.txHash |
string |
- |
args.vkHash |
string |
- |
{
key: string;
path: string;
}
Member | Type |
---|---|
key |
string |
path |
string |
function getTxHashes(args): Promise<{
store: undefined | UnimatrixDataStore;
txHashes: undefined | any[];
}>
Getter promise that returns any announced list of transaction hashes on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.subPath ? |
string [] |
- |
args.timeout ? |
number |
- |
Promise
<{
store
: undefined
| UnimatrixDataStore
;
txHashes
: undefined
| any
[];
}>
Member | Type |
---|---|
store |
undefined | UnimatrixDataStore |
txHashes |
undefined | any [] |
function getTxHex(args): Promise<{
store: undefined | UnimatrixDataStore;
txHex: undefined | string;
}>
Getter promise that returns a specific transaction CBOR structure (in hexadecimal encoding) on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.timeout ? |
number |
- |
args.txHash |
string |
- |
Promise
<{
store
: undefined
| UnimatrixDataStore
;
txHex
: undefined
| string
;
}>
Member | Type |
---|---|
store |
undefined | UnimatrixDataStore |
txHex |
undefined | string |
function getVkWitnessHex(args): Promise<{
store: undefined | UnimatrixDataStore;
vkWitnessHex: undefined | string;
}>
Getter promise that returns a specific transaction key witness (in hexadecimal encoding) on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.timeout ? |
number |
- |
args.txHash |
string |
- |
args.vkHash |
string |
- |
Promise
<{
store
: undefined
| UnimatrixDataStore
;
vkWitnessHex
: undefined
| string
;
}>
Member | Type |
---|---|
store |
undefined | UnimatrixDataStore |
vkWitnessHex |
undefined | string |
function onTxHashes(args): Promise<void>
Listener promise that calls the cb
callback every time it receives any incoming announced list of transaction hashes on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.cb |
(args ) => void |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.subPath ? |
string [] |
- |
args.timeout ? |
number |
- |
Promise
<void
>
function onTxHex(args): Promise<void>
Listener promise that calls the cb
callback every time it receives a specific incoming transaction CBOR structure (in hexadecimal encoding) on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.cb |
(args ) => void |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.timeout ? |
number |
- |
args.txHash |
string |
- |
Promise
<void
>
function onVkWitnessHex(args): Promise<void>
Listener promise that calls the cb
callback every time it receives a specific incoming transaction key witness (in hexadecimal encoding) on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.cb |
(args ) => void |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.timeout ? |
number |
- |
args.txHash |
string |
- |
args.vkHash |
string |
- |
Promise
<void
>
function setTxHashes(args): Promise<{
store: undefined | UnimatrixDataStore;
txHashes: undefined | any[];
}>
Setter promise that shares the announcement of a list of transaction hashes on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.error ? |
string |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.subPath ? |
string [] |
- |
args.txHashes ? |
string [] |
- |
Promise
<{
store
: undefined
| UnimatrixDataStore
;
txHashes
: undefined
| any
[];
}>
Member | Type |
---|---|
store |
undefined | UnimatrixDataStore |
txHashes |
undefined | any [] |
function setTxHex(args): Promise<{
store: undefined | UnimatrixDataStore;
txHex: undefined | string;
}>
Setter promise that shares a specific transaction CBOR structure (in hexadecimal encoding) on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.error ? |
string |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.txHash |
string |
- |
args.txHex ? |
string |
- |
Promise
<{
store
: undefined
| UnimatrixDataStore
;
txHex
: undefined
| string
;
}>
Member | Type |
---|---|
store |
undefined | UnimatrixDataStore |
txHex |
undefined | string |
function setVkWitnessHex(args): Promise<{
store: undefined | UnimatrixDataStore;
vkWitnessHex: undefined | string;
}>
Setter promise that shares a specific transaction key witness (in hexadecimal encoding) on a specific channel
Parameter | Type | Description |
---|---|---|
args |
object |
|
args.CSL |
any |
- |
args.db |
IGunInstance <any > |
- |
args.dltTag |
DLTTag |
- |
args.error ? |
string |
- |
args.id |
string |
- |
args.networkTag |
NetworkTag |
- |
args.txHash |
string |
- |
args.vkHash |
string |
- |
args.vkWitnessHex ? |
string |
- |
Promise
<{
store
: undefined
| UnimatrixDataStore
;
vkWitnessHex
: undefined
| string
;
}>
Member | Type |
---|---|
store |
undefined | UnimatrixDataStore |
vkWitnessHex |
undefined | string |