@tgrospic/rnode-grpc-js
Version:
RNode gRPC helpers
72 lines (71 loc) • 1.97 kB
TypeScript
/**
* Converts `Par` object to JSON returned from the RNode gRPC API.
*
* Example of Rholang return values.
* ```scala
* new return(`rho:rchain:deployId`) in {
* return!("One argument") | // monadic
* return!((true, "A", "B")) | // monadic as tuple
* return!(true, "A", "B") | // polyadic
* return!(true) | return!("A") // multiple values
* }
* ```
* And the corresponding converted JSON objects.
*
* ```js
* [ 'One argument' ] // return!("One argument")
* [ [ true, 'A', 'B' ] ] // return!((true, "A", "B"))
* [ true, 'A', 'B' ] // return!(true, "A", "B")
* [ true, 'A' ] // return!(true) | return!("A")
* ```
*/
export declare const rhoParToJson: (input: Par) => any;
/**
* Types copied from generated JS code from protobuf
* - depends on specific version of specific RNode version but not changed often
*/
export interface Par {
readonly exprsList?: Expr[];
readonly unforgeablesList?: GUnforgeable[];
}
export interface Expr {
readonly gBool?: boolean;
readonly gInt?: number;
readonly gString?: string;
readonly gUri?: string;
readonly gByteArray?: Uint8Array;
readonly eListBody?: EList;
readonly eTupleBody?: ETuple;
readonly eSetBody?: ESet;
readonly eMapBody?: EMap;
}
export interface EList {
readonly psList?: Par[];
}
export interface ETuple {
readonly psList?: Par[];
}
export interface ESet {
readonly psList?: Par[];
}
export interface EMap {
readonly kvsList?: KeyValuePair[];
}
export interface KeyValuePair {
readonly key: Par;
readonly value: Par;
}
export interface GUnforgeable {
readonly gPrivateBody?: GPrivate;
readonly gDeployIdBody?: GDeployId;
readonly gDeployerIdBody?: GDeployerId;
}
export interface GPrivate {
readonly id?: Uint8Array;
}
export interface GDeployId {
readonly sig?: Uint8Array;
}
export interface GDeployerId {
readonly publickey?: Uint8Array;
}