mycomesh-consumer 0.1.53 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -135
- package/bin/mycomesh-consumer.mjs +5 -8
- package/networks/mycomesh-v11-sepolia.json +27 -0
- package/package.json +8 -21
- package/src/chain.mjs +52 -0
- package/src/cli.mjs +131 -643
- package/src/consumer.mjs +143 -478
- package/src/disputes.mjs +54 -0
- package/src/eip712.mjs +151 -0
- package/src/protocol.mjs +90 -0
- package/src/secure-envelope.mjs +324 -0
- package/src/sse.mjs +101 -0
- package/bin/mycomesh.mjs +0 -10
- package/networks/v10-controlled-test.json +0 -119
- package/networks/v10-dynamic-20260926.ca.crt +0 -25
- package/networks/v10-dynamic-20260926.json +0 -154
- package/src/consumer-discovery.mjs +0 -355
- package/src/consumer-history.mjs +0 -287
- package/src/consumer-request-journal.mjs +0 -189
- package/src/consumer-reserved.mjs +0 -112
- package/src/consumer-runtime.mjs +0 -4176
- package/src/consumer-sessions.mjs +0 -205
- package/src/release.mjs +0 -12
- /package/networks/{v10-controlled-test.ca.crt → mycomesh-testnet-ca.crt} +0 -0
package/src/sse.mjs
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// Buffered SSE for OpenAI clients (Codex needs the Responses event sequence).
|
|
2
|
+
// Port of the event order in the former gateway/openai_protocol.py.
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
|
|
5
|
+
const TERMINAL = { completed: "response.completed", incomplete: "response.incomplete", failed: "response.failed" };
|
|
6
|
+
const PREFIX = { message: "msg", reasoning: "rs", function_call: "fc", custom_tool_call: "ct" };
|
|
7
|
+
|
|
8
|
+
const sse = (event) => `event: ${event.type}\ndata: ${JSON.stringify(event)}\n\n`;
|
|
9
|
+
|
|
10
|
+
function normalize(payload) {
|
|
11
|
+
const response = structuredClone(payload || {});
|
|
12
|
+
response.id ||= `resp_${randomUUID().replace(/-/g, "")}`;
|
|
13
|
+
response.object ||= "response";
|
|
14
|
+
response.created_at ||= Math.floor(Date.now() / 1000);
|
|
15
|
+
response.status = TERMINAL[response.status] ? response.status : "completed";
|
|
16
|
+
response.output = (Array.isArray(response.output) ? response.output : []).filter((item) => item && typeof item === "object")
|
|
17
|
+
.map((item) => ({ ...item, type: item.type || "unknown", id: item.id || `${PREFIX[item.type] || "item"}_${randomUUID().replace(/-/g, "")}` }));
|
|
18
|
+
response.error ??= null;
|
|
19
|
+
response.incomplete_details ??= null;
|
|
20
|
+
if (typeof response.output_text !== "string") {
|
|
21
|
+
response.output_text = response.output.filter((item) => item.type === "message")
|
|
22
|
+
.flatMap((item) => item.content || []).filter((part) => part.type === "output_text").map((part) => part.text || "").join("");
|
|
23
|
+
}
|
|
24
|
+
return response;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function added(item) {
|
|
28
|
+
const copy = structuredClone(item);
|
|
29
|
+
copy.status = "in_progress";
|
|
30
|
+
if (copy.type === "message") copy.content = [];
|
|
31
|
+
if (copy.type === "reasoning") { copy.summary = []; if ("content" in copy) copy.content = []; }
|
|
32
|
+
if (copy.type === "function_call") copy.arguments = "";
|
|
33
|
+
if (copy.type === "custom_tool_call") copy.input = "";
|
|
34
|
+
return copy;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function responseSse(payload) {
|
|
38
|
+
const final = normalize(payload);
|
|
39
|
+
const out = [];
|
|
40
|
+
let sequence = 0;
|
|
41
|
+
const emit = (type, fields) => out.push(sse({ type, sequence_number: sequence++, ...fields }));
|
|
42
|
+
const created = { ...structuredClone(final), status: "in_progress", output: [], output_text: "", usage: null };
|
|
43
|
+
emit("response.created", { response: created });
|
|
44
|
+
emit("response.in_progress", { response: created });
|
|
45
|
+
final.output.forEach((item, output_index) => {
|
|
46
|
+
const item_id = item.id;
|
|
47
|
+
emit("response.output_item.added", { output_index, item: added(item) });
|
|
48
|
+
if (item.type === "message") {
|
|
49
|
+
(item.content || []).forEach((part, content_index) => {
|
|
50
|
+
emit("response.content_part.added", { item_id, output_index, content_index, part: { ...part, text: part.type === "output_text" ? "" : part.text } });
|
|
51
|
+
if (part.type === "output_text") {
|
|
52
|
+
if (part.text) emit("response.output_text.delta", { item_id, output_index, content_index, delta: part.text, logprobs: [] });
|
|
53
|
+
emit("response.output_text.done", { item_id, output_index, content_index, text: part.text || "", logprobs: [] });
|
|
54
|
+
}
|
|
55
|
+
emit("response.content_part.done", { item_id, output_index, content_index, part });
|
|
56
|
+
});
|
|
57
|
+
} else if (item.type === "reasoning") {
|
|
58
|
+
(item.summary || []).forEach((part, summary_index) => {
|
|
59
|
+
emit("response.reasoning_summary_part.added", { item_id, output_index, summary_index, part: { ...part, type: "summary_text", text: "" } });
|
|
60
|
+
if (part.text) emit("response.reasoning_summary_text.delta", { item_id, output_index, summary_index, delta: part.text });
|
|
61
|
+
emit("response.reasoning_summary_text.done", { item_id, output_index, summary_index, text: part.text || "" });
|
|
62
|
+
emit("response.reasoning_summary_part.done", { item_id, output_index, summary_index, part });
|
|
63
|
+
});
|
|
64
|
+
} else if (item.type === "function_call") {
|
|
65
|
+
if (item.arguments) emit("response.function_call_arguments.delta", { item_id, output_index, delta: item.arguments });
|
|
66
|
+
emit("response.function_call_arguments.done", { item_id, output_index, call_id: item.call_id || "", name: item.name || "", arguments: item.arguments || "" });
|
|
67
|
+
} else if (item.type === "custom_tool_call") {
|
|
68
|
+
if (item.input) emit("response.custom_tool_call_input.delta", { item_id, output_index, delta: item.input });
|
|
69
|
+
emit("response.custom_tool_call_input.done", { item_id, output_index, call_id: item.call_id || "", name: item.name || "", input: item.input || "" });
|
|
70
|
+
}
|
|
71
|
+
emit("response.output_item.done", { output_index, item });
|
|
72
|
+
});
|
|
73
|
+
emit(TERMINAL[final.status], { response: final });
|
|
74
|
+
return out.join("");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function chatSse(payload, { includeUsage = false } = {}) {
|
|
78
|
+
const id = payload.id || `chatcmpl_${randomUUID().replace(/-/g, "")}`;
|
|
79
|
+
const model = payload.model || "";
|
|
80
|
+
const created = payload.created || Math.floor(Date.now() / 1000);
|
|
81
|
+
const chunk = (index, delta, finish_reason) =>
|
|
82
|
+
`data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model, choices: [{ index, delta, finish_reason }] })}\n\n`;
|
|
83
|
+
const out = [];
|
|
84
|
+
(payload.choices || []).forEach((choice, fallback) => {
|
|
85
|
+
const index = Number.isInteger(choice.index) ? choice.index : fallback;
|
|
86
|
+
const message = choice.message || {};
|
|
87
|
+
out.push(chunk(index, { role: message.role || "assistant" }, null));
|
|
88
|
+
if (typeof message.content === "string" && message.content) out.push(chunk(index, { content: message.content }, null));
|
|
89
|
+
const tools = Array.isArray(message.tool_calls) ? message.tool_calls : [];
|
|
90
|
+
tools.forEach((tool, toolIndex) => out.push(chunk(index, { tool_calls: [{
|
|
91
|
+
index: toolIndex, id: tool.id || `call_${randomUUID().slice(0, 24)}`, type: tool.type || "function",
|
|
92
|
+
function: { name: tool.function?.name || "", arguments: tool.function?.arguments || "" },
|
|
93
|
+
}] }, null)));
|
|
94
|
+
out.push(chunk(index, {}, choice.finish_reason || (tools.length ? "tool_calls" : "stop")));
|
|
95
|
+
});
|
|
96
|
+
if (includeUsage && payload.usage) {
|
|
97
|
+
out.push(`data: ${JSON.stringify({ id, object: "chat.completion.chunk", created, model, choices: [], usage: payload.usage })}\n\n`);
|
|
98
|
+
}
|
|
99
|
+
out.push("data: [DONE]\n\n");
|
|
100
|
+
return out.join("");
|
|
101
|
+
}
|
package/bin/mycomesh.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import { isApiInvocation } from "../src/consumer.mjs";
|
|
4
|
-
|
|
5
|
-
const argv = process.argv.slice(2);
|
|
6
|
-
const { main } = isApiInvocation(argv)
|
|
7
|
-
? await import("../src/cli.mjs")
|
|
8
|
-
: await import("../src/consumer.mjs");
|
|
9
|
-
|
|
10
|
-
process.exitCode = await main(argv);
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"adjudication_threshold": 2,
|
|
3
|
-
"adjudicator_operators": {
|
|
4
|
-
"0x5115fdff8b309aa07ee5e767d9cd5d25533f2823": "mycomesh-controlled-test-operator",
|
|
5
|
-
"0xeadc238bc6c1e6b3f776de26a55fbd818047c2a3": "mycomesh-controlled-test-operator",
|
|
6
|
-
"0xf2f59bad1187a6a5dceec6c1ca8626d2c59bd6bc": "mycomesh-controlled-test-operator"
|
|
7
|
-
},
|
|
8
|
-
"adjudicators": [
|
|
9
|
-
"0xeadc238bc6c1e6b3f776de26a55fbd818047c2a3",
|
|
10
|
-
"0x5115fdff8b309aa07ee5e767d9cd5d25533f2823",
|
|
11
|
-
"0xf2f59bad1187a6a5dceec6c1ca8626d2c59bd6bc"
|
|
12
|
-
],
|
|
13
|
-
"authorization_deadline_seconds": 9000,
|
|
14
|
-
"backend_policy": "codex-app-server-postvalidated-v1",
|
|
15
|
-
"bridge_urls": [
|
|
16
|
-
"https://136.0.3.126:10443",
|
|
17
|
-
"https://166.88.96.60:10443"
|
|
18
|
-
],
|
|
19
|
-
"capacity_channel_ids": [
|
|
20
|
-
"0x9fd37b06f33945e0a68fbb7cd82ef4599044c916e9e992d11a4832fe7bd45dfa",
|
|
21
|
-
"0xe724aa1a205789aedd3c43ac79a8bd73e7874eaa7439f26dc60fb88887bad674",
|
|
22
|
-
"0x6e3ab14cb5240e6f59dfa51dc1f3939c10b47c2402acd60979299527e052c9f2"
|
|
23
|
-
],
|
|
24
|
-
"capacity_open_tx_hash": "0x1f08405cb9ff9fc5a19074ceace64650f8c5df11fcfa6e5fd243d7bbdc703514",
|
|
25
|
-
"chain_domain": "10",
|
|
26
|
-
"chain_id": 11155111,
|
|
27
|
-
"channel": "codex-standard-v1",
|
|
28
|
-
"channel_hash": "0xdedf8b58276b80863f354409c963cbaddf4ca7d5b866d528ff1386d74b339104",
|
|
29
|
-
"channel_id": "codex",
|
|
30
|
-
"committee_mode": "controlled_test",
|
|
31
|
-
"consumer_public_keys": [],
|
|
32
|
-
"deployer": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
|
|
33
|
-
"deployment_block": 11739709,
|
|
34
|
-
"eip712_name": "MycoMesh Settlement",
|
|
35
|
-
"eip712_version": "10",
|
|
36
|
-
"governance": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
|
|
37
|
-
"independence_attested": false,
|
|
38
|
-
"max_authorization_ttl_seconds": 10800,
|
|
39
|
-
"max_channel_duration_seconds": 604800,
|
|
40
|
-
"network_id": "mycomesh-v10-fixed-budget-controlled-test",
|
|
41
|
-
"network_profile": "testnet",
|
|
42
|
-
"policy": {
|
|
43
|
-
"arbitration_timeout": 600,
|
|
44
|
-
"bond_penalty_recipient": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
|
|
45
|
-
"consumer_withdrawal_delay": 300,
|
|
46
|
-
"dispute_window": 300,
|
|
47
|
-
"reporter_bond": 10000,
|
|
48
|
-
"reporter_bounty_bps": 2000,
|
|
49
|
-
"slash_bps": 10000,
|
|
50
|
-
"slash_cap": 100000,
|
|
51
|
-
"stable_bounty_cap": 20000,
|
|
52
|
-
"token_minimum_exposure": 0,
|
|
53
|
-
"token_minimum_penalty": 0,
|
|
54
|
-
"token_reward": 0,
|
|
55
|
-
"token_reward_cap": 0
|
|
56
|
-
},
|
|
57
|
-
"pricing_hash": "0x6b4460729d50e89425af70b497056cc43eba201ea9077438fca58b284fa69684",
|
|
58
|
-
"pricing_version": 1,
|
|
59
|
-
"protocol_version": 10,
|
|
60
|
-
"provider_transport": "relay",
|
|
61
|
-
"public_model_id": "gpt-5.5",
|
|
62
|
-
"public_model_ids": [
|
|
63
|
-
"gpt-5.5",
|
|
64
|
-
"gpt-5.6-sol"
|
|
65
|
-
],
|
|
66
|
-
"relay": {
|
|
67
|
-
"attestation_address": "0x44d183a73b1a87801bc18b060a2ce0a7f3aecaaf",
|
|
68
|
-
"host": "136.0.3.126",
|
|
69
|
-
"payment_address": "0x94515c8903cca8e5aedb1437e947db39970792cc",
|
|
70
|
-
"provider_port": 10991,
|
|
71
|
-
"provider_tls": true,
|
|
72
|
-
"public_url": "https://136.0.3.126:10443"
|
|
73
|
-
},
|
|
74
|
-
"relay_fallbacks": [
|
|
75
|
-
{
|
|
76
|
-
"attestation_address": "0x420b2033a61491c268c2600c95d1b64ad9b962ca",
|
|
77
|
-
"host": "166.88.96.60",
|
|
78
|
-
"payment_address": "0x94515c8903cca8e5aedb1437e947db39970792cc",
|
|
79
|
-
"provider_port": 10991,
|
|
80
|
-
"provider_tls": true,
|
|
81
|
-
"public_url": "https://166.88.96.60:10443"
|
|
82
|
-
}
|
|
83
|
-
],
|
|
84
|
-
"require_response_proof": true,
|
|
85
|
-
"reservation_mode": "provider_bound_channel",
|
|
86
|
-
"reserve_input_bytes": 65536,
|
|
87
|
-
"reserve_output_tokens": 2000,
|
|
88
|
-
"reward_token": "0x0000000000000000000000000000000000000000",
|
|
89
|
-
"schema_version": 1,
|
|
90
|
-
"settlement": "0x76d9b48c83ffaf0772f7e43f468121cf07e825e5",
|
|
91
|
-
"settlement_rpc_url": "https://ethereum-sepolia-rpc.publicnode.com",
|
|
92
|
-
"settlement_rpc_urls": [
|
|
93
|
-
"https://ethereum-sepolia-rpc.publicnode.com",
|
|
94
|
-
"https://sepolia.gateway.tenderly.co"
|
|
95
|
-
],
|
|
96
|
-
"stablecoin": "0xeb487c6e778248e16361dc313e4223c20d4c23b5",
|
|
97
|
-
"stablecoin_runtime_code_keccak256": "0xec84672482c0750af490ff908151acbdfdffd04f9fee82f86efafa5ede6c30b4",
|
|
98
|
-
"stablecoin_runtime_code_sha256": "749dd96b18353ab7bbad50de0bb854f3cb427e37953ad0c444fc55d3ed200dd1",
|
|
99
|
-
"tls_ca_file": "v10-controlled-test.ca.crt",
|
|
100
|
-
"treasury": "0xae4a4c86c2b6c340c8198d0958b223f5d0c8caa2",
|
|
101
|
-
"tx_hash": "0x41afee0c470a00097c169bfff8efa42de8fde8b76e41eb226eebd6f962d55201",
|
|
102
|
-
"fresh_channel_open_tx_hash": "0x1f08405cb9ff9fc5a19074ceace64650f8c5df11fcfa6e5fd243d7bbdc703514",
|
|
103
|
-
"fresh_channel_open_tx_hashes": [
|
|
104
|
-
"0x1f08405cb9ff9fc5a19074ceace64650f8c5df11fcfa6e5fd243d7bbdc703514",
|
|
105
|
-
"0x89e903edc3b5773cd94fd9171b5c2b8e2fe71f7ea22eacc04eeed62c26c84162",
|
|
106
|
-
"0x0a23ea37ab1b5a409687c79a8ab073bad6e599b07f2012f1bdcb174151b9d5cf"
|
|
107
|
-
],
|
|
108
|
-
"fresh_channel_open_block_timestamps": [
|
|
109
|
-
1789916244,
|
|
110
|
-
1789916472,
|
|
111
|
-
1789916664
|
|
112
|
-
],
|
|
113
|
-
"fresh_channel_valid_from": 1789917396,
|
|
114
|
-
"fresh_channel_admit_until": 1789938996,
|
|
115
|
-
"fresh_channel_claim_until": 1789949796,
|
|
116
|
-
"fresh_channel_capacity": 1000000,
|
|
117
|
-
"fresh_channel_max_fee_per_request": 100000,
|
|
118
|
-
"fresh_channel_plan": "fresh-channel-plan-20260920f.json"
|
|
119
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIEKTCCApGgAwIBAgIUDwYNmg71zXD2ycqGMXfAmTtb9E8wDQYJKoZIhvcNAQEL
|
|
3
|
-
BQAwKzEpMCcGA1UEAwwgTXljb01lc2ggSVAgdGVzdG5ldCBkZWRpY2F0ZWQgQ0Ew
|
|
4
|
-
HhcNMjYwOTE1MDM0NjQ3WhcNMjcwOTE1MDM1NjQ3WjArMSkwJwYDVQQDDCBNeWNv
|
|
5
|
-
TWVzaCBJUCB0ZXN0bmV0IGRlZGljYXRlZCBDQTCCAaIwDQYJKoZIhvcNAQEBBQAD
|
|
6
|
-
ggGPADCCAYoCggGBAKSXx/8p203JtQSav+7wt7xYfWURFe0DQODb3XNIc2YFe7j4
|
|
7
|
-
HDEiL47sDpBd4JY9NELjzA47vIRkRdLlfit5JKWy1+ozzlJ6G2qs9o3vFK+Xho8K
|
|
8
|
-
8D8Q6hXCUaaKPFAg6vONH0OHnCMaWmq+3gKzdgId1ci4QopjAVvaxUj/CcpFVl1E
|
|
9
|
-
JdGjVhj+SVWE/fKb5Ullbw6UIhjpAbH4BmsOHJLfPJuw94lFWHgCJgcMWF8qxeTU
|
|
10
|
-
fL4Kwp6hUAgH0BOiD4NsNTn4lIFnqwzb+Cu6vqSdd/poTOMvKj7sjl+tZdphtCB5
|
|
11
|
-
DOZr066mAKlY91goM1BUD2y8ozBiDDUmJSeGp3eUy8Iuch2A9sEupDpt0z/cvs2W
|
|
12
|
-
BXqJdbvVEMY+TFVRPkSmG2FfnWvzoHx5QD7o4dYLIrN/nD5y44NypAdpR1n1IHs0
|
|
13
|
-
8EF1Lae80FHM3Jwt3mLqnhAvwKqMfAr71gFxolbLhO/O2RWd11UuBIy/ORsXFUGB
|
|
14
|
-
d/JurXmMC9kajoeg4wIDAQABo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud
|
|
15
|
-
DwEB/wQEAwIBBjAdBgNVHQ4EFgQUr/zADf47qEsS1yVwDgx6CvjN/5kwDQYJKoZI
|
|
16
|
-
hvcNAQELBQADggGBAHnJExIh4oxx8xkLsNVKb6hQyM6814wP6gUmLLUAZXfu6LV1
|
|
17
|
-
PoiMoeUWLd02JocyGLJnVmBgUFJHab16GUEwldYNBvnaeycrpQXP/Bu9Kl6Tr2Ku
|
|
18
|
-
Efv8veCY+tj6GWgv/HkRGrvdn6LPhVE84zvrkLthwn262FxPqeb1dt/RkgrDBPKL
|
|
19
|
-
YEN2QG8uyo10YSQm7jgyl22f/QrLB3jEO3lhVqzu0lKz6TZrv1ikvl1gtAV3rEfW
|
|
20
|
-
vszRlgkJqcFV/2cZmEN6iflq3LZNlnUWxgtLaMpCGlPRnQ9sLbPTFfqMHOyeWaCS
|
|
21
|
-
8odcemTNIJSmiyv/3HTjcmqDt9k1UGU8PwOMeKhHe/0hbgtqAxLajiz0VFDAo9MS
|
|
22
|
-
IH5wUcg3vY6LEV0TzkrQxobo2sAFArkJpoDafYRoZu0vnAfkQndQP66l9KzL33EP
|
|
23
|
-
PtV09Z9vNbjGC0NpJpop2J0J69VdDk9wHHJOQHYDPSxbL8eQKcQwtkOBCq0N1u6c
|
|
24
|
-
RQc4USIGi/decqtfJA==
|
|
25
|
-
-----END CERTIFICATE-----
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"adjudication_threshold": 2,
|
|
3
|
-
"authorization_deadline_seconds": 9000,
|
|
4
|
-
"backend_policy": "codex-app-server-postvalidated-v1",
|
|
5
|
-
"bind_tx_hash": "0x31d80c9d55e6554dd309ce9effe3b559aeb7691ac52feba07087ccafa64f88c8",
|
|
6
|
-
"bridge_urls": [
|
|
7
|
-
"https://166.88.209.61:10443",
|
|
8
|
-
"https://216.173.64.214:10443"
|
|
9
|
-
],
|
|
10
|
-
"capacity_channel_ids": [
|
|
11
|
-
"0xa8d7fa50d049040d84a76d2b7bc0739c70ce95c84d26be85fda51ca52d1f06dc",
|
|
12
|
-
"0xe66fafa17f1862aa17bfb6fc8456e12915bc6fd9f41553d122cdc4e7a280fb0b",
|
|
13
|
-
"0xe7464141820386aa00b666c9926208cb117b746c7a9a2cbd665c8b79d6240b9f"
|
|
14
|
-
],
|
|
15
|
-
"chain_domain": "10",
|
|
16
|
-
"chain_id": 11155111,
|
|
17
|
-
"channel": "codex-standard-v1",
|
|
18
|
-
"channel_hash": "0xdedf8b58276b80863f354409c963cbaddf4ca7d5b866d528ff1386d74b339104",
|
|
19
|
-
"channel_id": "codex",
|
|
20
|
-
"committee_mode": "dynamic_provider_ai_v1",
|
|
21
|
-
"confirmations": 6,
|
|
22
|
-
"deployer": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1",
|
|
23
|
-
"deployment_block": 11782915,
|
|
24
|
-
"deployment_block_hash": "0x9f0f7bab3452b11c0c06eb2fbfb414a73150a2106fee8a5221599a5ba80fa974",
|
|
25
|
-
"deployment_class": "controlled_test",
|
|
26
|
-
"eip712_name": "MycoMesh Settlement",
|
|
27
|
-
"eip712_version": "10",
|
|
28
|
-
"fresh_channel_admit_until": 1791725064,
|
|
29
|
-
"fresh_channel_capacity": 1000000,
|
|
30
|
-
"fresh_channel_claim_until": 1791735864,
|
|
31
|
-
"fresh_channel_max_fee_per_request": 100000,
|
|
32
|
-
"fresh_channel_open_block_timestamps": [
|
|
33
|
-
1790515212,
|
|
34
|
-
1790515212,
|
|
35
|
-
1790515212
|
|
36
|
-
],
|
|
37
|
-
"fresh_channel_open_tx_hashes": [
|
|
38
|
-
"0xcffdfa73276de1236b3828b399585f195efef444fea58bedc8a18957629dfe02",
|
|
39
|
-
"0xcffdfa73276de1236b3828b399585f195efef444fea58bedc8a18957629dfe02",
|
|
40
|
-
"0xcffdfa73276de1236b3828b399585f195efef444fea58bedc8a18957629dfe02"
|
|
41
|
-
],
|
|
42
|
-
"fresh_channel_valid_from": 1790515464,
|
|
43
|
-
"genesis_hash": "0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9",
|
|
44
|
-
"governance": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1",
|
|
45
|
-
"jury_decision_policy_hash": "0xd608c2aed84f2eeb83a56ad73ba01785124149951561bc7d2c840d31760f79cd",
|
|
46
|
-
"jury_pool_mode": "live_registry_reputation_snapshot",
|
|
47
|
-
"jury_provider_count_source": "ProviderJuryRegistryV1",
|
|
48
|
-
"jury_randomness": "future_blockhash_v1",
|
|
49
|
-
"jury_registry": "0x1f4b01f9138cbf25e646cbc2498f77a12729bae7",
|
|
50
|
-
"jury_registry_deployment_block": 11782892,
|
|
51
|
-
"jury_registry_deployment_block_hash": "0x5bcc90ff7aac086f912fdb2ddbb0cbd09314c0d15542462b51792cfb6d4f77b6",
|
|
52
|
-
"jury_registry_deployment_tx_hash": "0x574617c3746afce72aa2c00784400221ffafc839e5daab26eb2ae43c593f928b",
|
|
53
|
-
"jury_registry_governance": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1",
|
|
54
|
-
"jury_registry_runtime_code_keccak256": "0xa08926221f2b2252ed09a63e095a233b9fd11dabf529ecc846fd7afb67ea44f3",
|
|
55
|
-
"jury_relay_public_keys": [
|
|
56
|
-
"32ae49e6e49e303b268ea5236ab5650c4780c2f63514999f082e60dec1c78af7",
|
|
57
|
-
"ec4245fbdf4ca146878df705317ff7d48eea6a37a036357041631c1341268bd2"
|
|
58
|
-
],
|
|
59
|
-
"jury_roster_is_unpinned": true,
|
|
60
|
-
"jury_selection_delay_blocks": 4,
|
|
61
|
-
"jury_size": 3,
|
|
62
|
-
"jury_transaction_max_total_gas_cost_wei": 25000000000000000,
|
|
63
|
-
"jury_transaction_sender_role": "self-controlled-bridge-or-relay-executor",
|
|
64
|
-
"jury_transaction_senders": {
|
|
65
|
-
"32ae49e6e49e303b268ea5236ab5650c4780c2f63514999f082e60dec1c78af7": "0x44aeca97a8b5f8bfe5f79805045e71b2a2e8654b",
|
|
66
|
-
"ec4245fbdf4ca146878df705317ff7d48eea6a37a036357041631c1341268bd2": "0x69c224f4bcf8fa60ae98b2df0d2c55e2f758e30f"
|
|
67
|
-
},
|
|
68
|
-
"max_authorization_ttl_seconds": 10800,
|
|
69
|
-
"max_channel_duration_seconds": 2592000,
|
|
70
|
-
"minimum_provider_reputation": 75,
|
|
71
|
-
"network_id": "mycomesh-v10-dynamic-provider-ai-20260926-controlled-test",
|
|
72
|
-
"network_profile": "testnet",
|
|
73
|
-
"policy": {
|
|
74
|
-
"arbitration_timeout": 1800,
|
|
75
|
-
"bond_penalty_recipient": "0xa04e6ce35bea88aef85e07a9fc58af1121f80192",
|
|
76
|
-
"consumer_withdrawal_delay": 600,
|
|
77
|
-
"dispute_window": 1800,
|
|
78
|
-
"reporter_bond": 10000,
|
|
79
|
-
"reporter_bounty_bps": 2000,
|
|
80
|
-
"slash_bps": 10000,
|
|
81
|
-
"slash_cap": 100000,
|
|
82
|
-
"stable_bounty_cap": 20000,
|
|
83
|
-
"token_minimum_exposure": 0,
|
|
84
|
-
"token_minimum_penalty": 0,
|
|
85
|
-
"token_reward": 0,
|
|
86
|
-
"token_reward_cap": 0
|
|
87
|
-
},
|
|
88
|
-
"pricing_hash": "0xd530a940753c6bfce678d0376d01b920c4cae795962c18c870e834e043f2c638",
|
|
89
|
-
"pricing_version": 1,
|
|
90
|
-
"protocol_version": 10,
|
|
91
|
-
"provider_transport": "relay",
|
|
92
|
-
"public_model_id": "gpt-5.5",
|
|
93
|
-
"public_model_ids": [
|
|
94
|
-
"gpt-5.5",
|
|
95
|
-
"gpt-5.6-sol"
|
|
96
|
-
],
|
|
97
|
-
"relay": {
|
|
98
|
-
"attestation_address": "0x684114a7d8cbb51fad3de5b0597c2938c25ce8f4",
|
|
99
|
-
"host": "136.0.3.126",
|
|
100
|
-
"payment_address": "0x80a9337a3c37eeffad65031e6c2a89c820b14fe3",
|
|
101
|
-
"provider_port": 10991,
|
|
102
|
-
"provider_tls": true,
|
|
103
|
-
"public_url": "https://136.0.3.126:10443"
|
|
104
|
-
},
|
|
105
|
-
"relay_fallbacks": [
|
|
106
|
-
{
|
|
107
|
-
"attestation_address": "0x684114a7d8cbb51fad3de5b0597c2938c25ce8f4",
|
|
108
|
-
"host": "166.88.96.60",
|
|
109
|
-
"payment_address": "0x80a9337a3c37eeffad65031e6c2a89c820b14fe3",
|
|
110
|
-
"provider_port": 10991,
|
|
111
|
-
"provider_tls": true,
|
|
112
|
-
"public_url": "https://166.88.96.60:10443"
|
|
113
|
-
}
|
|
114
|
-
],
|
|
115
|
-
"reputation_authority": "0xc3568672d201c97b6ed08bf0339e0e53638969fd",
|
|
116
|
-
"reputation_history_import": {
|
|
117
|
-
"artifact_root": "0x162ca0bc55194cf23035df8ee88dfcc07591a57ccc7a59724fe51ca996006a3f",
|
|
118
|
-
"artifact_sha256": "737f8c8f1f2eb35340b8e7ee5ff98b64842a13689ede778f943ffc0ed07bc3b9",
|
|
119
|
-
"confirmations": 6,
|
|
120
|
-
"schema": "mycomesh.v10.reputation-history-import.v1",
|
|
121
|
-
"source_chain_id": 11155111,
|
|
122
|
-
"source_deployment_block": 11765832,
|
|
123
|
-
"source_deployment_block_hash": "0x9f46971146002debe730de414a0916d784e6cb70b9641c277cc9826080975c33",
|
|
124
|
-
"source_genesis_hash": "0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9",
|
|
125
|
-
"source_history_through_block": 11783241,
|
|
126
|
-
"source_history_through_block_hash": "0x2200911369ca3d619e16ec3336fda7c07598a225c27c01c3267ff270d84e5831",
|
|
127
|
-
"source_network_id": "mycomesh-v10-dynamic-provider-ai-controlled-test",
|
|
128
|
-
"source_protocol_version": 10,
|
|
129
|
-
"source_runtime_code_hash": "0x0316452e08e61fb19eb45b6ae2f16496ca2386581f4d46d983c6d0e283dbfeba",
|
|
130
|
-
"source_settlement_contract": "0xbb97e17156f390e4529d30d334ef56f22ec36fce"
|
|
131
|
-
},
|
|
132
|
-
"require_response_proof": true,
|
|
133
|
-
"reservation_mode": "provider_bound_channel",
|
|
134
|
-
"reserve_input_bytes": 65536,
|
|
135
|
-
"reserve_output_tokens": 2000,
|
|
136
|
-
"reward_token": "0x0000000000000000000000000000000000000000",
|
|
137
|
-
"schema_version": 1,
|
|
138
|
-
"settlement": "0x31d3f0a17c6c6f4594a2f9ffeebf72c41f9e1c3a",
|
|
139
|
-
"tx_hash": "0xb6175d01aeb82001f77560dfe5ecc63a6b90c415a2e5b1f5f90754b11bab9bd6",
|
|
140
|
-
"settlement_deployment_tx_hash": "0xb6175d01aeb82001f77560dfe5ecc63a6b90c415a2e5b1f5f90754b11bab9bd6",
|
|
141
|
-
"settlement_rpc_url": "https://rpc.sepolia.ethpandaops.io",
|
|
142
|
-
"settlement_rpc_urls": [
|
|
143
|
-
"https://rpc.sepolia.ethpandaops.io",
|
|
144
|
-
"https://sepolia.gateway.tenderly.co",
|
|
145
|
-
"https://ethereum-sepolia-rpc.publicnode.com"
|
|
146
|
-
],
|
|
147
|
-
"settlement_runtime_code_keccak256": "0xd649132e8a693486efac90093201250ae55d65c8f84eb3e99524a92191e51165",
|
|
148
|
-
"source_commit": "f311cba91035be9705daf10eca44bea9590de6c8",
|
|
149
|
-
"stablecoin": "0xeb487c6e778248e16361dc313e4223c20d4c23b5",
|
|
150
|
-
"stablecoin_runtime_code_keccak256": "0xec84672482c0750af490ff908151acbdfdffd04f9fee82f86efafa5ede6c30b4",
|
|
151
|
-
"stablecoin_runtime_code_sha256": "749dd96b18353ab7bbad50de0bb854f3cb427e37953ad0c444fc55d3ed200dd1",
|
|
152
|
-
"tls_ca_file": "v10-dynamic-20260926.ca.crt",
|
|
153
|
-
"treasury": "0x8d13f6c18ae30f223d985f39050cc8d9b00f90e1"
|
|
154
|
-
}
|