diff --git a/docs/tryorama.appoptions.md b/docs/tryorama.appoptions.md
index 33f430da..7f1345b9 100644
--- a/docs/tryorama.appoptions.md
+++ b/docs/tryorama.appoptions.md
@@ -121,7 +121,7 @@ _(Optional)_ A network seed to override the hApps' network seed.
-AppSignalCb
+SignalCb
|
diff --git a/docs/tryorama.appoptions.signalhandler.md b/docs/tryorama.appoptions.signalhandler.md
index 64094b84..395a2486 100644
--- a/docs/tryorama.appoptions.signalhandler.md
+++ b/docs/tryorama.appoptions.signalhandler.md
@@ -9,5 +9,5 @@ A signal handler for the conductor.
**Signature:**
```typescript
-signalHandler?: AppSignalCb;
+signalHandler?: SignalCb;
```
diff --git a/docs/tryorama.clientsplayersoptions.md b/docs/tryorama.clientsplayersoptions.md
index d3657460..0931784c 100644
--- a/docs/tryorama.clientsplayersoptions.md
+++ b/docs/tryorama.clientsplayersoptions.md
@@ -158,7 +158,7 @@ _(Optional)_ Configuration for the conductor (optional).
|
-AppSignalCb
+SignalCb
|
diff --git a/docs/tryorama.clientsplayersoptions.signalhandler.md b/docs/tryorama.clientsplayersoptions.signalhandler.md
index 483033b2..70e75791 100644
--- a/docs/tryorama.clientsplayersoptions.signalhandler.md
+++ b/docs/tryorama.clientsplayersoptions.signalhandler.md
@@ -9,5 +9,5 @@ A signal handler to be registered in conductors.
**Signature:**
```typescript
-signalHandler?: AppSignalCb;
+signalHandler?: SignalCb;
```
diff --git a/docs/tryorama.getcallablecell.md b/docs/tryorama.getcallablecell.md
index 20fc9ef1..7da7d6fa 100644
--- a/docs/tryorama.getcallablecell.md
+++ b/docs/tryorama.getcallablecell.md
@@ -13,7 +13,7 @@ getCallableCell: (appWs: IAppWebsocket, cell: ClonedCell | ProvisionedCell) => {
callZome: (request: CellZomeCallRequest, timeout?: number) => Promise;
cell_id: import("@holochain/client").CellId;
clone_id: string;
- original_dna_hash: import("@spartan-hc/holo-hash").DnaHash;
+ original_dna_hash: Uint8Array;
dna_modifiers: import("@holochain/client").DnaModifiers;
name: string;
enabled: boolean;
@@ -78,7 +78,7 @@ Cell to bind zome call function to.
**Returns:**
-{ callZome: <T>(request: [CellZomeCallRequest](./tryorama.cellzomecallrequest.md), timeout?: number) => Promise<T>; cell\_id: import("@holochain/client").CellId; clone\_id: string; original\_dna\_hash: import("@spartan-hc/holo-hash").DnaHash; dna\_modifiers: import("@holochain/client").DnaModifiers; name: string; enabled: boolean; } \| { callZome: <T>(request: [CellZomeCallRequest](./tryorama.cellzomecallrequest.md), timeout?: number) => Promise<T>; cell\_id: import("@holochain/client").CellId; dna\_modifiers: import("@holochain/client").DnaModifiers; name: string; }
+{ callZome: <T>(request: [CellZomeCallRequest](./tryorama.cellzomecallrequest.md), timeout?: number) => Promise<T>; cell\_id: import("@holochain/client").CellId; clone\_id: string; original\_dna\_hash: Uint8Array; dna\_modifiers: import("@holochain/client").DnaModifiers; name: string; enabled: boolean; } \| { callZome: <T>(request: [CellZomeCallRequest](./tryorama.cellzomecallrequest.md), timeout?: number) => Promise<T>; cell\_id: import("@holochain/client").CellId; dna\_modifiers: import("@holochain/client").DnaModifiers; name: string; }
A callable cell.
diff --git a/docs/tryorama.trycpclient.setsignalhandler.md b/docs/tryorama.trycpclient.setsignalhandler.md
index d4514ffa..f3fc79b9 100644
--- a/docs/tryorama.trycpclient.setsignalhandler.md
+++ b/docs/tryorama.trycpclient.setsignalhandler.md
@@ -7,7 +7,7 @@
**Signature:**
```typescript
-setSignalHandler(port: number, signalHandler?: AppSignalCb): void;
+setSignalHandler(port: number, signalHandler?: SignalCb): void;
```
## Parameters
@@ -49,7 +49,7 @@ signalHandler
|
-AppSignalCb
+SignalCb
|
diff --git a/docs/tryorama.trycpconductor.on.md b/docs/tryorama.trycpconductor.on.md
index 8b6c9e5c..aacf4569 100644
--- a/docs/tryorama.trycpconductor.on.md
+++ b/docs/tryorama.trycpconductor.on.md
@@ -9,7 +9,7 @@ Attach a signal handler.
**Signature:**
```typescript
-on(port: number, signalHandler: AppSignalCb): void;
+on(port: number, signalHandler: SignalCb): void;
```
## Parameters
@@ -53,7 +53,7 @@ signalHandler
|
-AppSignalCb
+SignalCb
|
diff --git a/ts/src/trycp/conductor/conductor.ts b/ts/src/trycp/conductor/conductor.ts
index 443d17a9..8f87eb8e 100644
--- a/ts/src/trycp/conductor/conductor.ts
+++ b/ts/src/trycp/conductor/conductor.ts
@@ -4,7 +4,7 @@ import {
AgentPubKey,
AppAuthenticationToken,
AppBundleSource,
- AppSignalCb,
+ SignalCb,
AttachAppInterfaceRequest,
CallZomeRequest,
CallZomeRequestSigned,
@@ -332,7 +332,7 @@ export class TryCpConductor implements IConductor {
* @param signalHandler - The signal handler to register.
* @param port - The port of the app interface.
*/
- on(port: number, signalHandler: AppSignalCb) {
+ on(port: number, signalHandler: SignalCb) {
this.tryCpClient.setSignalHandler(port, signalHandler);
}
diff --git a/ts/src/trycp/conductor/scenario.ts b/ts/src/trycp/conductor/scenario.ts
index d5797491..6ffa0e1e 100644
--- a/ts/src/trycp/conductor/scenario.ts
+++ b/ts/src/trycp/conductor/scenario.ts
@@ -1,4 +1,4 @@
-import { AgentPubKey, AppBundleSource, AppSignalCb } from "@holochain/client";
+import { AgentPubKey, AppBundleSource, SignalCb } from "@holochain/client";
import { ChildProcessWithoutNullStreams } from "node:child_process";
import { URL } from "url";
import { v4 as uuidv4 } from "uuid";
@@ -49,7 +49,7 @@ export interface ClientsPlayersOptions {
/**
* A signal handler to be registered in conductors.
*/
- signalHandler?: AppSignalCb;
+ signalHandler?: SignalCb;
}
/**
diff --git a/ts/src/trycp/trycp-client.ts b/ts/src/trycp/trycp-client.ts
index 47948cb2..d6cb4217 100644
--- a/ts/src/trycp/trycp-client.ts
+++ b/ts/src/trycp/trycp-client.ts
@@ -1,4 +1,4 @@
-import { AppSignalCb, CallZomeRequestSigned } from "@holochain/client";
+import { SignalCb, CallZomeRequestSigned } from "@holochain/client";
import msgpack from "@msgpack/msgpack";
import cloneDeep from "lodash/cloneDeep.js";
import assert from "node:assert";
@@ -46,7 +46,7 @@ export class TryCpClient {
responseReject: (reason: TryCpResponseErrorValue) => void;
};
};
- private signalHandlers: Record;
+ private signalHandlers: Record;
// can be set in local test cases
bootstrapServerUrl: URL | undefined;
@@ -143,7 +143,7 @@ export class TryCpClient {
return connectPromise;
}
- setSignalHandler(port: number, signalHandler?: AppSignalCb) {
+ setSignalHandler(port: number, signalHandler?: SignalCb) {
this.signalHandlers[port] = signalHandler;
}
diff --git a/ts/src/trycp/util.ts b/ts/src/trycp/util.ts
index 089dba05..9ade20b5 100644
--- a/ts/src/trycp/util.ts
+++ b/ts/src/trycp/util.ts
@@ -1,7 +1,8 @@
-import { Signal, SignalType } from "@holochain/client";
+import { AppSignal, RawSignal, Signal, SignalType } from "@holochain/client";
import msgpack from "@msgpack/msgpack";
import assert from "node:assert";
import { TryCpApiResponse, _TryCpResponseWrapper } from "./types.js";
+import { inspect } from "util";
/**
* Deserialize the binary response from TryCP
@@ -25,13 +26,18 @@ export const deserializeTryCpResponse = (response: Uint8Array) => {
*/
export const deserializeTryCpSignal = (signal: Uint8Array) => {
const deserializedSignal = msgpack.decode(signal);
- assertIsSignal(deserializedSignal);
+ assertIsRawSignal(deserializedSignal);
if (SignalType.App in deserializedSignal) {
const {
- [SignalType.App]: { cell_id, signal: payload, zome_name },
+ [SignalType.App]: { cell_id, signal, zome_name },
} = deserializedSignal;
- const decodedPayload = msgpack.decode(payload) as T;
- return { cell_id, payload: decodedPayload, zome_name };
+ const decodedPayload = msgpack.decode(signal) as T;
+ const app_signal: AppSignal = {
+ cell_id,
+ zome_name,
+ payload: decodedPayload,
+ };
+ return { App: app_signal } as Signal;
} else {
throw new Error("Receiving system signals is not implemented yet");
}
@@ -85,7 +91,7 @@ function assertIsApiResponse(
assert(response && typeof response === "object" && "type" in response);
}
-function assertIsSignal(signal: unknown): asserts signal is Signal {
+function assertIsRawSignal(signal: unknown): asserts signal is RawSignal {
assert(
signal &&
typeof signal === "object" &&
diff --git a/ts/src/types.ts b/ts/src/types.ts
index e25cf4bd..7a5181b4 100644
--- a/ts/src/types.ts
+++ b/ts/src/types.ts
@@ -4,7 +4,7 @@ import type {
AppAuthenticationToken,
AppBundleSource,
AppInfo,
- AppSignalCb,
+ SignalCb,
AppWebsocket,
CallZomeRequest,
CellId,
@@ -151,7 +151,7 @@ export interface AppOptions {
/**
* A signal handler for the conductor.
*/
- signalHandler?: AppSignalCb;
+ signalHandler?: SignalCb;
}
/**
diff --git a/ts/test/fixture/zomes/coordinator/src/lib.rs b/ts/test/fixture/zomes/coordinator/src/lib.rs
index f1970bb2..a674d76c 100644
--- a/ts/test/fixture/zomes/coordinator/src/lib.rs
+++ b/ts/test/fixture/zomes/coordinator/src/lib.rs
@@ -44,7 +44,9 @@ fn signal_loopback(value: LoopBack) -> ExternResult<()> {
}
#[hdk_extern]
-fn create_two_party_countersigning_session(with_other: AgentPubKey) -> ExternResult {
+fn create_two_party_countersigning_session(
+ with_other: AgentPubKey,
+) -> ExternResult {
let my_agent_info = agent_info()?;
let entry = Content("hello".to_string());
@@ -55,27 +57,22 @@ fn create_two_party_countersigning_session(with_other: AgentPubKey) -> ExternRes
let request = PreflightRequest::try_new(
entry_hash,
vec![
- (
- my_agent_info.agent_initial_pubkey,
- vec![],
- ),
+ (my_agent_info.agent_initial_pubkey, vec![]),
(with_other.clone(), vec![]),
],
Vec::with_capacity(0),
0,
true,
session_times,
- ActionBase::Create(CreateBase::new(
- EntryTypesUnit::Content.try_into()?,
- )),
+ ActionBase::Create(CreateBase::new(EntryTypesUnit::Content.try_into()?)),
PreflightBytes(vec![]),
)
- .map_err(|e| {
- wasm_error!(WasmErrorInner::Guest(format!(
+ .map_err(|e| {
+ wasm_error!(WasmErrorInner::Guest(format!(
"Failed to create countersigning request: {:?}",
e
)))
- })?;
+ })?;
// Accept ours now and then Holochain should wait for the other party to join the session
let my_acceptance = accept_countersigning_preflight_request(request.clone())?;
@@ -97,9 +94,7 @@ fn create_two_party_countersigning_session(with_other: AgentPubKey) -> ExternRes
fn accept_two_party(request: PreflightRequest) -> ExternResult {
let my_accept = accept_countersigning_preflight_request(request)?;
match my_accept {
- PreflightRequestAcceptance::Accepted(response) => {
- Ok(response)
- }
+ PreflightRequestAcceptance::Accepted(response) => Ok(response),
e => Err(wasm_error!(WasmErrorInner::Guest(format!(
"Unexpected response: {:?}",
e
diff --git a/ts/test/local/conductor.ts b/ts/test/local/conductor.ts
index 6955d7bc..81cf59c7 100644
--- a/ts/test/local/conductor.ts
+++ b/ts/test/local/conductor.ts
@@ -1,12 +1,11 @@
import {
ActionHash,
AppBundleSource,
- AppSignal,
- AppSignalCb,
+ Signal,
+ SignalCb,
CellProvisioningStrategy,
CloneId,
EntryHash,
- Signal,
SignalType,
} from "@holochain/client";
import assert from "node:assert";
@@ -616,8 +615,8 @@ test("Local Conductor - create and read an entry, 2 conductors, 2 cells, 2 agent
test("Local Conductor - Receive a signal", async (t) => {
const { servicesProcess, signalingServerUrl } = await runLocalServices();
- let signalHandler: AppSignalCb | undefined;
- const signalReceived = new Promise((resolve) => {
+ let signalHandler: SignalCb | undefined;
+ const signalReceived = new Promise((resolve) => {
signalHandler = (signal: Signal) => {
assert(SignalType.App in signal);
resolve(signal[SignalType.App]);
diff --git a/ts/test/local/scenario.ts b/ts/test/local/scenario.ts
index 6ddd325e..a2be083c 100644
--- a/ts/test/local/scenario.ts
+++ b/ts/test/local/scenario.ts
@@ -1,11 +1,10 @@
import {
ActionHash,
AppBundleSource,
- AppSignal,
- AppSignalCb,
+ Signal,
+ SignalCb,
AppWebsocket,
EntryHash,
- Signal,
SignalType,
} from "@holochain/client";
import assert from "node:assert/strict";
@@ -66,8 +65,8 @@ test("Local Scenario - runScenario - Catch error when calling a zome of an undef
test("Local Scenario - runScenario - Catch error that occurs in a signal handler", async (t) => {
await runScenario(async (scenario: Scenario) => {
- let signalHandlerAlice: AppSignalCb | undefined;
- const signalReceivedAlice = new Promise((_, reject) => {
+ let signalHandlerAlice: SignalCb | undefined;
+ const signalReceivedAlice = new Promise((_, reject) => {
signalHandlerAlice = () => {
reject();
};
@@ -201,16 +200,16 @@ test("Local Scenario - Conductor maintains data after shutdown and restart", asy
test("Local Scenario - Receive signals with 2 conductors", async (t) => {
const scenario = new Scenario();
- let signalHandlerAlice: AppSignalCb | undefined;
- const signalReceivedAlice = new Promise((resolve) => {
+ let signalHandlerAlice: SignalCb | undefined;
+ const signalReceivedAlice = new Promise((resolve) => {
signalHandlerAlice = (signal: Signal) => {
assert(SignalType.App in signal);
resolve(signal[SignalType.App]);
};
});
- let signalHandlerBob: AppSignalCb | undefined;
- const signalReceivedBob = new Promise((resolve) => {
+ let signalHandlerBob: SignalCb | undefined;
+ const signalReceivedBob = new Promise((resolve) => {
signalHandlerBob = (signal: Signal) => {
assert(SignalType.App in signal);
resolve(signal[SignalType.App]);
diff --git a/ts/test/trycp/conductor.ts b/ts/test/trycp/conductor.ts
index eaaab8f1..8f711758 100644
--- a/ts/test/trycp/conductor.ts
+++ b/ts/test/trycp/conductor.ts
@@ -1,12 +1,14 @@
import {
ActionHash,
AppBundleSource,
+ Signal,
AppSignal,
CellProvisioningStrategy,
CellType,
CloneId,
encodeHashToBase64,
EntryHash,
+ SignalType,
GrantedFunctionsType,
} from "@holochain/client";
import assert from "node:assert";
@@ -395,8 +397,8 @@ test("TryCP Conductor - receive a signal", async (t) => {
const testSignal = { value: "signal" };
let signalHandler;
- const signalReceived = new Promise((resolve) => {
- signalHandler = (signal: AppSignal) => {
+ const signalReceived = new Promise((resolve) => {
+ signalHandler = (signal: Signal) => {
resolve(signal);
};
});
@@ -432,7 +434,7 @@ test("TryCP Conductor - receive a signal", async (t) => {
});
const actualSignal = await signalReceived;
t.deepEqual(
- actualSignal.payload,
+ actualSignal[SignalType.App].payload,
testSignal,
"received signal matches expected signal"
);
diff --git a/ts/test/trycp/scenario.ts b/ts/test/trycp/scenario.ts
index fbc2c0de..f19c119f 100644
--- a/ts/test/trycp/scenario.ts
+++ b/ts/test/trycp/scenario.ts
@@ -1,4 +1,4 @@
-import { AppSignal, AppSignalCb, EntryHash } from "@holochain/client";
+import { Signal, SignalCb, EntryHash, SignalType } from "@holochain/client";
import { URL } from "node:url";
import test from "tape-promise/tape.js";
import { runLocalServices } from "../../src/common.js";
@@ -152,14 +152,14 @@ test("TryCP Scenario - receive signals with 2 conductors", async (t) => {
} = await runLocalServices());
const client = await scenario.addClient(SERVER_URL);
- let signalHandlerAlice: AppSignalCb | undefined;
- const signalReceivedAlice = new Promise((resolve) => {
+ let signalHandlerAlice: SignalCb | undefined;
+ const signalReceivedAlice = new Promise((resolve) => {
signalHandlerAlice = (signal) => {
resolve(signal);
};
});
- let signalHandlerBob: AppSignalCb | undefined;
- const signalReceivedBob = new Promise((resolve) => {
+ let signalHandlerBob: SignalCb | undefined;
+ const signalReceivedBob = new Promise((resolve) => {
signalHandlerBob = (signal) => {
resolve(signal);
};
@@ -192,12 +192,18 @@ test("TryCP Scenario - receive signals with 2 conductors", async (t) => {
signalReceivedAlice,
signalReceivedBob,
]);
+
t.deepEqual(
- actualSignalAlice.payload,
+ actualSignalAlice[SignalType.App].payload,
signalAlice,
"received alice's signal"
);
- t.deepEqual(actualSignalBob.payload, signalBob, "received bob's signal");
+
+ t.deepEqual(
+ actualSignalBob[SignalType.App].payload,
+ signalBob,
+ "received bob's signal"
+ );
await scenario.cleanUp();
await tryCpServer.stop();
|