diff --git a/dist/cjs/helper/task.d.ts b/dist/cjs/helper/task.d.ts index d10fce04..4120c333 100644 --- a/dist/cjs/helper/task.d.ts +++ b/dist/cjs/helper/task.d.ts @@ -1,4 +1,4 @@ -import { QueryParams, ProvingParams, DeployParams, Statistics, AddImageParams, WithSignature, UserQueryParams, PaymentParams, TxHistoryQueryParams, LogQuery, ResetImageParams, PaginationResult, Task, Image, TransactionInfo, AppConfig, OmitSignature, ModifyImageParams, SubscriptionRequest, ERC20DepositInfo, User, Subscription, PaginatedQuery, AutoSubmitProofQuery, Round1InfoQuery, Round1Info, Round2Info, Round2InfoQuery, AutoSubmitProof, ConciseTask, NodeStatistics, NodeStatisticsQueryParams } from "../interface/interface.js"; +import { QueryParams, ProvingParams, DeployParams, Statistics, AddImageParams, WithSignature, UserQueryParams, PaymentParams, TxHistoryQueryParams, LogQuery, ResetImageParams, PaginationResult, Task, Image, TransactionInfo, AppConfig, OmitSignature, ModifyImageParams, SubscriptionRequest, ERC20DepositInfo, User, Subscription, PaginatedQuery, AutoSubmitProofQuery, Round1InfoQuery, Round1Info, Round2Info, Round2InfoQuery, AutoSubmitProof, ConciseTask, NodeStatistics, NodeStatisticsQueryParams, SetMaintenanceModeParams } from "../interface/interface.js"; import { ZkWasmServiceEndpoint } from "./endpoint.js"; export declare class ZkWasmServiceHelper { endpoint: ZkWasmServiceEndpoint; @@ -25,6 +25,7 @@ export declare class ZkWasmServiceHelper { addDeployTask(task: WithSignature): Promise; addResetTask(task: WithSignature): Promise; modifyImage(data: WithSignature): Promise; + setMaintenanceMode(req: WithSignature): Promise; sendRequestWithSignature(method: "GET" | "POST", path: TaskEndpoint, task: WithSignature, isFormData?: boolean): Promise; createHeaders(task: WithSignature): Record; omitSignature(task: WithSignature): OmitSignature; @@ -37,6 +38,7 @@ export declare enum TaskEndpoint { RESET = "/reset", MODIFY = "/modify", PAY = "/pay", + SET_MAINTENANCE_MODE = "/admin/set_maintenance_mode", SUBSCRIBE = "/subscribe", LOGS = "/logs", ROUND_1_BATCH = "/round1_batch_proofs", diff --git a/dist/cjs/helper/task.js b/dist/cjs/helper/task.js index 5a4787a9..fffc82f6 100644 --- a/dist/cjs/helper/task.js +++ b/dist/cjs/helper/task.js @@ -325,6 +325,15 @@ class ZkWasmServiceHelper { return response; }); } + setMaintenanceMode(req) { + return __awaiter(this, void 0, void 0, function* () { + let response = yield this.sendRequestWithSignature("POST", TaskEndpoint.SET_MAINTENANCE_MODE, req, true); + if (this.endpoint.enable_logs) { + console.log("setMaintenanceMode response:", response.toString()); + } + return response; + }); + } sendRequestWithSignature(method, path, task, isFormData = false) { return __awaiter(this, void 0, void 0, function* () { // TODO: create return types for tasks using this method @@ -376,6 +385,7 @@ var TaskEndpoint; TaskEndpoint["RESET"] = "/reset"; TaskEndpoint["MODIFY"] = "/modify"; TaskEndpoint["PAY"] = "/pay"; + TaskEndpoint["SET_MAINTENANCE_MODE"] = "/admin/set_maintenance_mode"; TaskEndpoint["SUBSCRIBE"] = "/subscribe"; TaskEndpoint["LOGS"] = "/logs"; TaskEndpoint["ROUND_1_BATCH"] = "/round1_batch_proofs"; diff --git a/dist/cjs/helper/util.d.ts b/dist/cjs/helper/util.d.ts index 86ffb70f..19ce633a 100644 --- a/dist/cjs/helper/util.d.ts +++ b/dist/cjs/helper/util.d.ts @@ -1,6 +1,6 @@ /// import BN from "bn.js"; -import { AddImageParams, ProvingParams, DeployParams, ResetImageParams, ModifyImageParams, VerifyProofParams, LogQuery, ContextHexString, VerifyBatchProofParams } from "../interface/interface.js"; +import { AddImageParams, ProvingParams, DeployParams, ResetImageParams, ModifyImageParams, VerifyProofParams, SetMaintenanceModeParams, LogQuery, ContextHexString, VerifyBatchProofParams } from "../interface/interface.js"; import { Contract, Signer } from "ethers"; import { DelphinusWalletConnector, DelphinusBrowserConnector } from "web3subscriber/src/provider.js"; export declare class ZkWasmUtil { @@ -78,6 +78,7 @@ export declare class ZkWasmUtil { static convertAmount(balance: Uint8Array): string; static createLogsMesssage(params: LogQuery): string; static createAddImageSignMessage(params: AddImageParams): string; + static createSetMaintenanceModeSignMessage(params: SetMaintenanceModeParams): string; static createProvingSignMessage(params: ProvingParams): string; static createDeploySignMessage(params: DeployParams): string; static createResetImageMessage(params: ResetImageParams): string; diff --git a/dist/cjs/helper/util.js b/dist/cjs/helper/util.js index 23a6635a..05b20571 100644 --- a/dist/cjs/helper/util.js +++ b/dist/cjs/helper/util.js @@ -160,6 +160,14 @@ class ZkWasmUtil { } return message; } + static createSetMaintenanceModeSignMessage(params) { + let message = ""; + message += params.mode; + message += params.nonce; + message += params.request_type; + message += params.user_address; + return message; + } static createProvingSignMessage(params) { // No need to sign the file itself, just the md5 let message = ""; diff --git a/dist/cjs/index.d.ts b/dist/cjs/index.d.ts index d8b90130..72be6a7a 100644 --- a/dist/cjs/index.d.ts +++ b/dist/cjs/index.d.ts @@ -1,7 +1,7 @@ -import { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, WithSignature, User, UserQueryParams, PaymentParams, SubscriptionParams, Subscription, SubscriptionType, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, TaskStatus, TaskType, AppConfig, PaginationResult, ResetImageParams, LogQuery, ModifyImageParams, ChainDetails, InputContextType, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProofStatus, Round1Status, Round2Status, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, AutoSubmitStatus, VerifyBatchProofParams, AutoSubmitBatchMetadata, ProofSubmitMode, ProvePaymentSrc, NodeStatistics, NodeStatisticsQueryParams } from "./interface/interface.js"; +import { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, WithSignature, User, UserQueryParams, PaymentParams, SubscriptionParams, Subscription, SubscriptionType, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, TaskStatus, TaskType, AppConfig, PaginationResult, ResetImageParams, LogQuery, ModifyImageParams, ChainDetails, InputContextType, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProofStatus, Round1Status, Round2Status, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, AutoSubmitStatus, VerifyBatchProofParams, AutoSubmitBatchMetadata, ProofSubmitMode, ProvePaymentSrc, NodeStatistics, NodeStatisticsQueryParams, MaintenanceModeType, SetMaintenanceModeParams, AdminRequestType } from "./interface/interface.js"; import { ZkWasmUtil } from "./helper/util.js"; import { ZkWasmServiceEndpoint } from "./helper/endpoint.js"; import { ZkWasmServiceHelper } from "./helper/task.js"; import { ERC20Lib } from "./abi/ERC20.js"; -export { ZkWasmServiceEndpoint, ZkWasmServiceHelper, ZkWasmUtil, ERC20Lib, InputContextType, AutoSubmitStatus, AutoSubmitProofStatus, Round1Status, Round2Status, ProofSubmitMode, ProvePaymentSrc, }; -export type { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, TaskStatus, TaskType, WithSignature, User, UserQueryParams, Subscription, SubscriptionType, PaymentParams, SubscriptionParams, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, ResetImageParams, AppConfig, PaginationResult, LogQuery, ModifyImageParams, ChainDetails, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, VerifyBatchProofParams, AutoSubmitBatchMetadata, NodeStatistics, NodeStatisticsQueryParams, }; +export { ZkWasmServiceEndpoint, ZkWasmServiceHelper, ZkWasmUtil, ERC20Lib, InputContextType, AutoSubmitStatus, AutoSubmitProofStatus, Round1Status, Round2Status, ProofSubmitMode, ProvePaymentSrc, MaintenanceModeType, AdminRequestType, }; +export type { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, TaskStatus, TaskType, WithSignature, User, UserQueryParams, Subscription, SubscriptionType, PaymentParams, SubscriptionParams, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, ResetImageParams, AppConfig, PaginationResult, LogQuery, ModifyImageParams, ChainDetails, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, VerifyBatchProofParams, AutoSubmitBatchMetadata, NodeStatistics, NodeStatisticsQueryParams, SetMaintenanceModeParams, }; diff --git a/dist/cjs/index.js b/dist/cjs/index.js index 7205f5e9..bcc0d5d6 100644 --- a/dist/cjs/index.js +++ b/dist/cjs/index.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ProvePaymentSrc = exports.ProofSubmitMode = exports.Round2Status = exports.Round1Status = exports.AutoSubmitProofStatus = exports.AutoSubmitStatus = exports.InputContextType = exports.ERC20Lib = exports.ZkWasmUtil = exports.ZkWasmServiceHelper = exports.ZkWasmServiceEndpoint = void 0; +exports.AdminRequestType = exports.MaintenanceModeType = exports.ProvePaymentSrc = exports.ProofSubmitMode = exports.Round2Status = exports.Round1Status = exports.AutoSubmitProofStatus = exports.AutoSubmitStatus = exports.InputContextType = exports.ERC20Lib = exports.ZkWasmUtil = exports.ZkWasmServiceHelper = exports.ZkWasmServiceEndpoint = void 0; const interface_js_1 = require("./interface/interface.js"); Object.defineProperty(exports, "InputContextType", { enumerable: true, get: function () { return interface_js_1.InputContextType; } }); Object.defineProperty(exports, "AutoSubmitProofStatus", { enumerable: true, get: function () { return interface_js_1.AutoSubmitProofStatus; } }); @@ -9,6 +9,8 @@ Object.defineProperty(exports, "Round2Status", { enumerable: true, get: function Object.defineProperty(exports, "AutoSubmitStatus", { enumerable: true, get: function () { return interface_js_1.AutoSubmitStatus; } }); Object.defineProperty(exports, "ProofSubmitMode", { enumerable: true, get: function () { return interface_js_1.ProofSubmitMode; } }); Object.defineProperty(exports, "ProvePaymentSrc", { enumerable: true, get: function () { return interface_js_1.ProvePaymentSrc; } }); +Object.defineProperty(exports, "MaintenanceModeType", { enumerable: true, get: function () { return interface_js_1.MaintenanceModeType; } }); +Object.defineProperty(exports, "AdminRequestType", { enumerable: true, get: function () { return interface_js_1.AdminRequestType; } }); const util_js_1 = require("./helper/util.js"); Object.defineProperty(exports, "ZkWasmUtil", { enumerable: true, get: function () { return util_js_1.ZkWasmUtil; } }); const endpoint_js_1 = require("./helper/endpoint.js"); diff --git a/dist/cjs/interface/interface.d.ts b/dist/cjs/interface/interface.d.ts index 22a4a1b0..19e46d81 100644 --- a/dist/cjs/interface/interface.d.ts +++ b/dist/cjs/interface/interface.d.ts @@ -467,3 +467,17 @@ export interface TransactionInfo { user_address: string; receiver_address: string; } +export declare enum MaintenanceModeType { + Disabled = "Disabled", + Enabled = "Enabled" +} +export declare enum AdminRequestType { + Default = "Default", + MaintenanceMode = "MaintenanceMode" +} +export interface SetMaintenanceModeParams { + mode: MaintenanceModeType; + nonce: number; + request_type: AdminRequestType; + user_address: string; +} diff --git a/dist/cjs/interface/interface.js b/dist/cjs/interface/interface.js index 99848958..f97a0a08 100644 --- a/dist/cjs/interface/interface.js +++ b/dist/cjs/interface/interface.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ProofSubmitMode = exports.ProvePaymentSrc = exports.AutoSubmitStatus = exports.Round2Status = exports.Round1Status = exports.AutoSubmitProofStatus = exports.InputContextType = void 0; +exports.AdminRequestType = exports.MaintenanceModeType = exports.ProofSubmitMode = exports.ProvePaymentSrc = exports.AutoSubmitStatus = exports.Round2Status = exports.Round1Status = exports.AutoSubmitProofStatus = exports.InputContextType = void 0; var InputContextType; (function (InputContextType) { InputContextType["Custom"] = "Custom"; @@ -42,3 +42,13 @@ var ProofSubmitMode; ProofSubmitMode["Manual"] = "Manual"; ProofSubmitMode["Auto"] = "Auto"; })(ProofSubmitMode = exports.ProofSubmitMode || (exports.ProofSubmitMode = {})); +var MaintenanceModeType; +(function (MaintenanceModeType) { + MaintenanceModeType["Disabled"] = "Disabled"; + MaintenanceModeType["Enabled"] = "Enabled"; +})(MaintenanceModeType = exports.MaintenanceModeType || (exports.MaintenanceModeType = {})); +var AdminRequestType; +(function (AdminRequestType) { + AdminRequestType["Default"] = "Default"; + AdminRequestType["MaintenanceMode"] = "MaintenanceMode"; +})(AdminRequestType = exports.AdminRequestType || (exports.AdminRequestType = {})); diff --git a/dist/mjs/helper/task.d.ts b/dist/mjs/helper/task.d.ts index d10fce04..4120c333 100644 --- a/dist/mjs/helper/task.d.ts +++ b/dist/mjs/helper/task.d.ts @@ -1,4 +1,4 @@ -import { QueryParams, ProvingParams, DeployParams, Statistics, AddImageParams, WithSignature, UserQueryParams, PaymentParams, TxHistoryQueryParams, LogQuery, ResetImageParams, PaginationResult, Task, Image, TransactionInfo, AppConfig, OmitSignature, ModifyImageParams, SubscriptionRequest, ERC20DepositInfo, User, Subscription, PaginatedQuery, AutoSubmitProofQuery, Round1InfoQuery, Round1Info, Round2Info, Round2InfoQuery, AutoSubmitProof, ConciseTask, NodeStatistics, NodeStatisticsQueryParams } from "../interface/interface.js"; +import { QueryParams, ProvingParams, DeployParams, Statistics, AddImageParams, WithSignature, UserQueryParams, PaymentParams, TxHistoryQueryParams, LogQuery, ResetImageParams, PaginationResult, Task, Image, TransactionInfo, AppConfig, OmitSignature, ModifyImageParams, SubscriptionRequest, ERC20DepositInfo, User, Subscription, PaginatedQuery, AutoSubmitProofQuery, Round1InfoQuery, Round1Info, Round2Info, Round2InfoQuery, AutoSubmitProof, ConciseTask, NodeStatistics, NodeStatisticsQueryParams, SetMaintenanceModeParams } from "../interface/interface.js"; import { ZkWasmServiceEndpoint } from "./endpoint.js"; export declare class ZkWasmServiceHelper { endpoint: ZkWasmServiceEndpoint; @@ -25,6 +25,7 @@ export declare class ZkWasmServiceHelper { addDeployTask(task: WithSignature): Promise; addResetTask(task: WithSignature): Promise; modifyImage(data: WithSignature): Promise; + setMaintenanceMode(req: WithSignature): Promise; sendRequestWithSignature(method: "GET" | "POST", path: TaskEndpoint, task: WithSignature, isFormData?: boolean): Promise; createHeaders(task: WithSignature): Record; omitSignature(task: WithSignature): OmitSignature; @@ -37,6 +38,7 @@ export declare enum TaskEndpoint { RESET = "/reset", MODIFY = "/modify", PAY = "/pay", + SET_MAINTENANCE_MODE = "/admin/set_maintenance_mode", SUBSCRIBE = "/subscribe", LOGS = "/logs", ROUND_1_BATCH = "/round1_batch_proofs", diff --git a/dist/mjs/helper/task.js b/dist/mjs/helper/task.js index c7cc6f40..154f2a8e 100644 --- a/dist/mjs/helper/task.js +++ b/dist/mjs/helper/task.js @@ -256,6 +256,13 @@ export class ZkWasmServiceHelper { } return response; } + async setMaintenanceMode(req) { + let response = await this.sendRequestWithSignature("POST", TaskEndpoint.SET_MAINTENANCE_MODE, req, true); + if (this.endpoint.enable_logs) { + console.log("setMaintenanceMode response:", response.toString()); + } + return response; + } async sendRequestWithSignature(method, path, task, isFormData = false) { // TODO: create return types for tasks using this method let headers = this.createHeaders(task); @@ -304,6 +311,7 @@ export var TaskEndpoint; TaskEndpoint["RESET"] = "/reset"; TaskEndpoint["MODIFY"] = "/modify"; TaskEndpoint["PAY"] = "/pay"; + TaskEndpoint["SET_MAINTENANCE_MODE"] = "/admin/set_maintenance_mode"; TaskEndpoint["SUBSCRIBE"] = "/subscribe"; TaskEndpoint["LOGS"] = "/logs"; TaskEndpoint["ROUND_1_BATCH"] = "/round1_batch_proofs"; diff --git a/dist/mjs/helper/util.d.ts b/dist/mjs/helper/util.d.ts index 86ffb70f..19ce633a 100644 --- a/dist/mjs/helper/util.d.ts +++ b/dist/mjs/helper/util.d.ts @@ -1,6 +1,6 @@ /// import BN from "bn.js"; -import { AddImageParams, ProvingParams, DeployParams, ResetImageParams, ModifyImageParams, VerifyProofParams, LogQuery, ContextHexString, VerifyBatchProofParams } from "../interface/interface.js"; +import { AddImageParams, ProvingParams, DeployParams, ResetImageParams, ModifyImageParams, VerifyProofParams, SetMaintenanceModeParams, LogQuery, ContextHexString, VerifyBatchProofParams } from "../interface/interface.js"; import { Contract, Signer } from "ethers"; import { DelphinusWalletConnector, DelphinusBrowserConnector } from "web3subscriber/src/provider.js"; export declare class ZkWasmUtil { @@ -78,6 +78,7 @@ export declare class ZkWasmUtil { static convertAmount(balance: Uint8Array): string; static createLogsMesssage(params: LogQuery): string; static createAddImageSignMessage(params: AddImageParams): string; + static createSetMaintenanceModeSignMessage(params: SetMaintenanceModeParams): string; static createProvingSignMessage(params: ProvingParams): string; static createDeploySignMessage(params: DeployParams): string; static createResetImageMessage(params: ResetImageParams): string; diff --git a/dist/mjs/helper/util.js b/dist/mjs/helper/util.js index 8af23ff5..e20fba89 100644 --- a/dist/mjs/helper/util.js +++ b/dist/mjs/helper/util.js @@ -243,6 +243,14 @@ export class ZkWasmUtil { } return message; } + static createSetMaintenanceModeSignMessage(params) { + let message = ""; + message += params.mode; + message += params.nonce; + message += params.request_type; + message += params.user_address; + return message; + } static createProvingSignMessage(params) { // No need to sign the file itself, just the md5 let message = ""; diff --git a/dist/mjs/index.d.ts b/dist/mjs/index.d.ts index d8b90130..72be6a7a 100644 --- a/dist/mjs/index.d.ts +++ b/dist/mjs/index.d.ts @@ -1,7 +1,7 @@ -import { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, WithSignature, User, UserQueryParams, PaymentParams, SubscriptionParams, Subscription, SubscriptionType, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, TaskStatus, TaskType, AppConfig, PaginationResult, ResetImageParams, LogQuery, ModifyImageParams, ChainDetails, InputContextType, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProofStatus, Round1Status, Round2Status, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, AutoSubmitStatus, VerifyBatchProofParams, AutoSubmitBatchMetadata, ProofSubmitMode, ProvePaymentSrc, NodeStatistics, NodeStatisticsQueryParams } from "./interface/interface.js"; +import { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, WithSignature, User, UserQueryParams, PaymentParams, SubscriptionParams, Subscription, SubscriptionType, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, TaskStatus, TaskType, AppConfig, PaginationResult, ResetImageParams, LogQuery, ModifyImageParams, ChainDetails, InputContextType, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProofStatus, Round1Status, Round2Status, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, AutoSubmitStatus, VerifyBatchProofParams, AutoSubmitBatchMetadata, ProofSubmitMode, ProvePaymentSrc, NodeStatistics, NodeStatisticsQueryParams, MaintenanceModeType, SetMaintenanceModeParams, AdminRequestType } from "./interface/interface.js"; import { ZkWasmUtil } from "./helper/util.js"; import { ZkWasmServiceEndpoint } from "./helper/endpoint.js"; import { ZkWasmServiceHelper } from "./helper/task.js"; import { ERC20Lib } from "./abi/ERC20.js"; -export { ZkWasmServiceEndpoint, ZkWasmServiceHelper, ZkWasmUtil, ERC20Lib, InputContextType, AutoSubmitStatus, AutoSubmitProofStatus, Round1Status, Round2Status, ProofSubmitMode, ProvePaymentSrc, }; -export type { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, TaskStatus, TaskType, WithSignature, User, UserQueryParams, Subscription, SubscriptionType, PaymentParams, SubscriptionParams, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, ResetImageParams, AppConfig, PaginationResult, LogQuery, ModifyImageParams, ChainDetails, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, VerifyBatchProofParams, AutoSubmitBatchMetadata, NodeStatistics, NodeStatisticsQueryParams, }; +export { ZkWasmServiceEndpoint, ZkWasmServiceHelper, ZkWasmUtil, ERC20Lib, InputContextType, AutoSubmitStatus, AutoSubmitProofStatus, Round1Status, Round2Status, ProofSubmitMode, ProvePaymentSrc, MaintenanceModeType, AdminRequestType, }; +export type { Task, ConciseTask, ProvingParams, DeployParams, QueryParams, VerifyProofParams, VerifyData, StatusState, DeploymentInfo, Image, Statistics, AddImageParams, TaskStatus, TaskType, WithSignature, User, UserQueryParams, Subscription, SubscriptionType, PaymentParams, SubscriptionParams, SubscriptionRequest, TxHistoryQueryParams, TransactionInfo, ResetImageParams, AppConfig, PaginationResult, LogQuery, ModifyImageParams, ChainDetails, ContextHexString, WithCustomInputContextType, WithInitialContext, WithNonCustomInputContextType, WithResetContext, WithoutInitialContext, WithoutInputContextType, WithoutResetContext, AutoSubmitProof, Round1Info, Round2Info, AutoSubmitProofQuery, Round1InfoQuery, Round2InfoQuery, PaginatedQuery, PaginationQuery, VerifyBatchProofParams, AutoSubmitBatchMetadata, NodeStatistics, NodeStatisticsQueryParams, SetMaintenanceModeParams, }; diff --git a/dist/mjs/index.js b/dist/mjs/index.js index dd7ba510..159dcf4e 100644 --- a/dist/mjs/index.js +++ b/dist/mjs/index.js @@ -1,6 +1,6 @@ -import { InputContextType, AutoSubmitProofStatus, Round1Status, Round2Status, AutoSubmitStatus, ProofSubmitMode, ProvePaymentSrc, } from "./interface/interface.js"; +import { InputContextType, AutoSubmitProofStatus, Round1Status, Round2Status, AutoSubmitStatus, ProofSubmitMode, ProvePaymentSrc, MaintenanceModeType, AdminRequestType, } from "./interface/interface.js"; import { ZkWasmUtil } from "./helper/util.js"; import { ZkWasmServiceEndpoint } from "./helper/endpoint.js"; import { ZkWasmServiceHelper } from "./helper/task.js"; import { ERC20Lib } from "./abi/ERC20.js"; -export { ZkWasmServiceEndpoint, ZkWasmServiceHelper, ZkWasmUtil, ERC20Lib, InputContextType, AutoSubmitStatus, AutoSubmitProofStatus, Round1Status, Round2Status, ProofSubmitMode, ProvePaymentSrc, }; +export { ZkWasmServiceEndpoint, ZkWasmServiceHelper, ZkWasmUtil, ERC20Lib, InputContextType, AutoSubmitStatus, AutoSubmitProofStatus, Round1Status, Round2Status, ProofSubmitMode, ProvePaymentSrc, MaintenanceModeType, AdminRequestType, }; diff --git a/dist/mjs/interface/interface.d.ts b/dist/mjs/interface/interface.d.ts index 22a4a1b0..19e46d81 100644 --- a/dist/mjs/interface/interface.d.ts +++ b/dist/mjs/interface/interface.d.ts @@ -467,3 +467,17 @@ export interface TransactionInfo { user_address: string; receiver_address: string; } +export declare enum MaintenanceModeType { + Disabled = "Disabled", + Enabled = "Enabled" +} +export declare enum AdminRequestType { + Default = "Default", + MaintenanceMode = "MaintenanceMode" +} +export interface SetMaintenanceModeParams { + mode: MaintenanceModeType; + nonce: number; + request_type: AdminRequestType; + user_address: string; +} diff --git a/dist/mjs/interface/interface.js b/dist/mjs/interface/interface.js index 7344a7ff..3dc08efe 100644 --- a/dist/mjs/interface/interface.js +++ b/dist/mjs/interface/interface.js @@ -39,3 +39,13 @@ export var ProofSubmitMode; ProofSubmitMode["Manual"] = "Manual"; ProofSubmitMode["Auto"] = "Auto"; })(ProofSubmitMode || (ProofSubmitMode = {})); +export var MaintenanceModeType; +(function (MaintenanceModeType) { + MaintenanceModeType["Disabled"] = "Disabled"; + MaintenanceModeType["Enabled"] = "Enabled"; +})(MaintenanceModeType || (MaintenanceModeType = {})); +export var AdminRequestType; +(function (AdminRequestType) { + AdminRequestType["Default"] = "Default"; + AdminRequestType["MaintenanceMode"] = "MaintenanceMode"; +})(AdminRequestType || (AdminRequestType = {})); diff --git a/src/helper/task.ts b/src/helper/task.ts index b52e190f..8ad40d99 100644 --- a/src/helper/task.ts +++ b/src/helper/task.ts @@ -33,6 +33,7 @@ import { ConciseTask, NodeStatistics, NodeStatisticsQueryParams, + SetMaintenanceModeParams, } from "../interface/interface.js"; import { ZkWasmServiceEndpoint } from "./endpoint.js"; import { ethers } from "ethers"; @@ -429,6 +430,19 @@ export class ZkWasmServiceHelper { return response; } + async setMaintenanceMode(req: WithSignature) { + let response = await this.sendRequestWithSignature( + "POST", + TaskEndpoint.SET_MAINTENANCE_MODE, + req, + true, + ); + if (this.endpoint.enable_logs) { + console.log("setMaintenanceMode response:", response.toString()); + } + return response; + } + async sendRequestWithSignature( method: "GET" | "POST", path: TaskEndpoint, @@ -491,6 +505,7 @@ export enum TaskEndpoint { RESET = "/reset", MODIFY = "/modify", PAY = "/pay", + SET_MAINTENANCE_MODE = "/admin/set_maintenance_mode", SUBSCRIBE = "/subscribe", LOGS = "/logs", ROUND_1_BATCH = "/round1_batch_proofs", diff --git a/src/helper/util.ts b/src/helper/util.ts index 2ddcab04..48875d01 100644 --- a/src/helper/util.ts +++ b/src/helper/util.ts @@ -7,6 +7,7 @@ import { ResetImageParams, ModifyImageParams, VerifyProofParams, + SetMaintenanceModeParams, LogQuery, ContextHexString, InputContextType, @@ -278,6 +279,15 @@ export class ZkWasmUtil { return message; } + static createSetMaintenanceModeSignMessage(params: SetMaintenanceModeParams): string { + let message = ""; + message += params.mode; + message += params.nonce; + message += params.request_type; + message += params.user_address; + return message; + } + static createProvingSignMessage(params: ProvingParams): string { // No need to sign the file itself, just the md5 let message = ""; diff --git a/src/index.ts b/src/index.ts index 8d68963a..6dab34e3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -56,6 +56,9 @@ import { ProvePaymentSrc, NodeStatistics, NodeStatisticsQueryParams, + MaintenanceModeType, + SetMaintenanceModeParams, + AdminRequestType, } from "./interface/interface.js"; import { ZkWasmUtil } from "./helper/util.js"; @@ -75,6 +78,8 @@ export { Round2Status, ProofSubmitMode, ProvePaymentSrc, + MaintenanceModeType, + AdminRequestType, }; export type { @@ -128,4 +133,5 @@ export type { AutoSubmitBatchMetadata, NodeStatistics, NodeStatisticsQueryParams, + SetMaintenanceModeParams, }; diff --git a/src/interface/interface.ts b/src/interface/interface.ts index dff29201..79d59e1e 100644 --- a/src/interface/interface.ts +++ b/src/interface/interface.ts @@ -568,3 +568,20 @@ export interface TransactionInfo { user_address: string; receiver_address: string; } + +export enum MaintenanceModeType { + Disabled = "Disabled", + Enabled = "Enabled", +} + +export enum AdminRequestType { + Default = "Default", + MaintenanceMode = "MaintenanceMode", +} + +export interface SetMaintenanceModeParams { + mode: MaintenanceModeType, + nonce : number, + request_type: AdminRequestType, + user_address: string, +}