Skip to content

Commit b8c7ba3

Browse files
committed
fix(fhevm-cli): make generated address artifacts writable
1 parent 08e6b8a commit b8c7ba3

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

test-suite/fhevm/src/services/EnvWriter.test.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import { describe, expect, test } from "bun:test";
2-
import { resolveEnvMap, rewriteRelayerConfig } from "./EnvWriter";
2+
import fs from "node:fs/promises";
3+
import os from "node:os";
4+
import path from "node:path";
5+
import { resolveEnvMap, rewriteRelayerConfig, writeWritableFile } from "./EnvWriter";
36

47
describe("resolveEnvMap", () => {
58
test("resolves single-level interpolation", () => {
@@ -86,3 +89,13 @@ describe("rewriteRelayerConfig", () => {
8689
expect(result).toEqual(config);
8790
});
8891
});
92+
93+
describe("writeWritableFile", () => {
94+
test("writes files with group/world writable mode for bind-mounted address artifacts", async () => {
95+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "fhevm-env-writer-"));
96+
const file = path.join(dir, ".env.gateway");
97+
await writeWritableFile(file, "A=1\n");
98+
const stat = await fs.stat(file);
99+
expect(stat.mode & 0o777).toBe(0o666);
100+
});
101+
});

test-suite/fhevm/src/services/EnvWriter.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ const ensureWritableDir = async (dir: string) => {
3939
await fs.chmod(dir, 0o777);
4040
};
4141

42+
export const writeWritableFile = async (file: string, contents: string) => {
43+
await fs.writeFile(file, contents);
44+
await fs.chmod(file, 0o666);
45+
};
46+
4247
export { resolveEnvMap } from "../render-env";
4348
export { rewriteRelayerConfig } from "../render-config";
4449

@@ -137,25 +142,25 @@ export class EnvWriter extends Context.Tag("EnvWriter")<
137142
),
138143
);
139144
if (state.discovery) {
140-
await fs.writeFile(
145+
await writeWritableFile(
141146
gatewayAddressesPath,
142147
renderGatewayAddressesEnv(state),
143148
);
144-
await fs.writeFile(
149+
await writeWritableFile(
145150
gatewayAddressesSolidityPath,
146151
renderGatewayAddressesSolidity(state),
147152
);
148-
await fs.writeFile(
153+
await writeWritableFile(
149154
paymentBridgingAddressesSolidityPath,
150155
renderPaymentBridgingAddressesSolidity(
151156
rendered.componentEnvs["gateway-sc"],
152157
),
153158
);
154-
await fs.writeFile(
159+
await writeWritableFile(
155160
hostAddressesPath,
156161
renderHostAddressesEnv(state),
157162
);
158-
await fs.writeFile(
163+
await writeWritableFile(
159164
hostAddressesSolidityPath,
160165
renderHostAddressesSolidity(state),
161166
);

0 commit comments

Comments
 (0)