@provablehq/sdk 0.6.9 → 0.6.11
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 +200 -432
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/program-manager.d.ts +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +2 -2
- package/dist/worker.js.map +1 -1
- package/package.json +3 -3
|
@@ -191,7 +191,7 @@ declare class ProgramManager {
|
|
|
191
191
|
* programManager.setAccount(account);
|
|
192
192
|
*
|
|
193
193
|
* /// Get the response and ensure that the program executed correctly
|
|
194
|
-
* const executionResponse = await programManager.
|
|
194
|
+
* const executionResponse = await programManager.run(program, "hello", ["5u32", "5u32"]);
|
|
195
195
|
* const result = executionResponse.getOutputs();
|
|
196
196
|
* assert(result === ["10u32"]);
|
|
197
197
|
*/
|
package/dist/worker.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PrivateKey } from "./index";
|
|
2
2
|
export interface WorkerAPI {
|
|
3
|
-
|
|
3
|
+
run: (localProgram: string, aleoFunction: string, inputs: string[], privateKey: string) => Promise<{
|
|
4
4
|
outputs: any;
|
|
5
5
|
execution: string;
|
|
6
6
|
} | string>;
|
package/dist/worker.js
CHANGED
|
@@ -8,7 +8,7 @@ const keyProvider = new AleoKeyProvider();
|
|
|
8
8
|
const programManager = new ProgramManager(defaultHost, keyProvider, undefined);
|
|
9
9
|
keyProvider.useCache(true);
|
|
10
10
|
let lastLocalProgram = "";
|
|
11
|
-
async function
|
|
11
|
+
async function run(localProgram, aleoFunction, inputs, privateKey, proveExecution = false) {
|
|
12
12
|
console.log("Web worker: Executing function locally...");
|
|
13
13
|
const startTime = performance.now();
|
|
14
14
|
try {
|
|
@@ -69,6 +69,6 @@ async function getPrivateKey() {
|
|
|
69
69
|
const privateKey = new PrivateKey();
|
|
70
70
|
return privateKey.to_string();
|
|
71
71
|
}
|
|
72
|
-
const workerAPI = {
|
|
72
|
+
const workerAPI = { run, getPrivateKey };
|
|
73
73
|
expose(workerAPI);
|
|
74
74
|
//# sourceMappingURL=worker.js.map
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sources":["../src/worker.ts"],"sourcesContent":["import {initThreadPool, ProgramManager, PrivateKey, verifyFunctionExecution, FunctionKeyPair} from \"./index\";\nimport { AleoKeyProvider, AleoKeyProviderParams} from \"./function-key-provider\";\nimport { expose } from \"comlink\";\n\nawait initThreadPool();\n\nconst defaultHost = \"https://api.explorer.aleo.org/v1\";\nconst keyProvider = new AleoKeyProvider();\nconst programManager = new ProgramManager(\n defaultHost,\n keyProvider,\n undefined\n);\n\nkeyProvider.useCache(true);\n\nlet lastLocalProgram: string = \"\";\n\nexport interface WorkerAPI {\n
|
|
1
|
+
{"version":3,"file":"worker.js","sources":["../src/worker.ts"],"sourcesContent":["import {initThreadPool, ProgramManager, PrivateKey, verifyFunctionExecution, FunctionKeyPair} from \"./index\";\nimport { AleoKeyProvider, AleoKeyProviderParams} from \"./function-key-provider\";\nimport { expose } from \"comlink\";\n\nawait initThreadPool();\n\nconst defaultHost = \"https://api.explorer.aleo.org/v1\";\nconst keyProvider = new AleoKeyProvider();\nconst programManager = new ProgramManager(\n defaultHost,\n keyProvider,\n undefined\n);\n\nkeyProvider.useCache(true);\n\nlet lastLocalProgram: string = \"\";\n\nexport interface WorkerAPI {\n run: (\n localProgram: string,\n aleoFunction: string,\n inputs: string[],\n privateKey: string\n ) => Promise<{ outputs: any; execution: string } | string>;\n\n getPrivateKey: () => Promise<PrivateKey>;\n}\nasync function run(\n localProgram: string,\n aleoFunction: string,\n inputs: string[],\n privateKey: string,\n proveExecution = false\n) {\n console.log(\"Web worker: Executing function locally...\");\n const startTime = performance.now();\n\n try {\n // Ensure the program is valid and that it contains the function specified\n const program = programManager.createProgramFromSource(localProgram);\n if (program instanceof Error) {\n throw \"Error creating program from source\";\n }\n const program_id = program.id();\n if (!program.hasFunction(aleoFunction)) {\n throw `Program ${program_id} does not contain function ${aleoFunction}`;\n }\n const cacheKey = `${program_id}:${aleoFunction}`;\n\n // Get the program imports\n const imports = await programManager.networkClient.getProgramImports(\n localProgram\n );\n\n if (imports instanceof Error) {\n throw \"Error getting program imports\";\n }\n // Get the proving and verifying keys for the function\n if (lastLocalProgram !== localProgram) {\n const keys = <FunctionKeyPair>await programManager.synthesizeKeys(\n localProgram,\n aleoFunction,\n inputs,\n PrivateKey.from_string(privateKey)\n );\n programManager.keyProvider.cacheKeys(cacheKey, keys);\n lastLocalProgram = localProgram;\n }\n\n // Pass the cache key to the execute function\n const keyParams = new AleoKeyProviderParams({\n cacheKey: cacheKey,\n });\n\n // Execute the function locally\n const response = await programManager.run(\n localProgram,\n aleoFunction,\n inputs,\n proveExecution,\n imports,\n keyParams,\n undefined,\n undefined,\n PrivateKey.from_string(privateKey),\n );\n\n // Return the outputs to the main thread\n console.log(\n `Web worker: Local execution completed in ${\n performance.now() - startTime\n } ms`\n );\n const outputs = response.getOutputs();\n const execution = response.getExecution();\n let executionString = \"\";\n\n const keys = keyProvider.getKeys(cacheKey);\n\n if (keys instanceof Error) {\n throw \"Could not get verifying key\";\n }\n\n const verifyingKey = keys[1];\n\n if (execution) {\n verifyFunctionExecution(\n execution,\n verifyingKey,\n program,\n \"hello\"\n );\n executionString = execution.toString();\n console.log(\"Execution verified successfully: \" + execution);\n } else {\n executionString = \"\";\n }\n\n console.log(`Function execution response: ${outputs}`);\n\n return { outputs: outputs, execution: executionString };\n } catch (error) {\n console.error(error);\n return error ? error.toString() : \"Unknown error\";\n }\n}\n\nasync function getPrivateKey() {\n const privateKey = new PrivateKey();\n return privateKey.to_string();\n}\n\nconst workerAPI = { run, getPrivateKey };\nexpose(workerAPI);\n"],"names":[],"mappings":";;;;AAIA,MAAM,cAAc,EAAE,CAAC;AAEvB,MAAM,WAAW,GAAG,kCAAkC,CAAC;AACvD,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;AAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,CACrC,WAAW,EACX,WAAW,EACX,SAAS,CACZ,CAAC;AAEF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE3B,IAAI,gBAAgB,GAAW,EAAE,CAAC;AAYlC,eAAe,GAAG,CACd,YAAoB,EACpB,YAAoB,EACpB,MAAgB,EAChB,UAAkB,EAClB,cAAc,GAAG,KAAK,EAAA;AAEtB,IAAA,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AACzD,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,IAAI;;QAEA,MAAM,OAAO,GAAG,cAAc,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,OAAO,YAAY,KAAK,EAAE;AAC1B,YAAA,MAAM,oCAAoC,CAAC;AAC9C,SAAA;AACD,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;AACpC,YAAA,MAAM,CAAW,QAAA,EAAA,UAAU,CAA8B,2BAAA,EAAA,YAAY,EAAE,CAAC;AAC3E,SAAA;AACD,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,UAAU,CAAI,CAAA,EAAA,YAAY,EAAE,CAAC;;QAGjD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,iBAAiB,CAChE,YAAY,CACf,CAAC;QAEF,IAAI,OAAO,YAAY,KAAK,EAAE;AAC1B,YAAA,MAAM,+BAA+B,CAAC;AACzC,SAAA;;QAED,IAAI,gBAAgB,KAAK,YAAY,EAAE;YACnC,MAAM,IAAI,GAAoB,MAAM,cAAc,CAAC,cAAc,CAC7D,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CACrC,CAAC;YACF,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACrD,gBAAgB,GAAG,YAAY,CAAC;AACnC,SAAA;;AAGD,QAAA,MAAM,SAAS,GAAG,IAAI,qBAAqB,CAAC;AACxC,YAAA,QAAQ,EAAE,QAAQ;AACrB,SAAA,CAAC,CAAC;;AAGH,QAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CACrC,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,cAAc,EACd,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CACrC,CAAC;;AAGF,QAAA,OAAO,CAAC,GAAG,CACP,CAAA,yCAAA,EACI,WAAW,CAAC,GAAG,EAAE,GAAG,SACxB,CAAK,GAAA,CAAA,CACR,CAAC;AACF,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,eAAe,GAAG,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,IAAI,YAAY,KAAK,EAAE;AACvB,YAAA,MAAM,6BAA6B,CAAC;AACvC,SAAA;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAE7B,QAAA,IAAI,SAAS,EAAE;YACX,uBAAuB,CACnB,SAAS,EACT,YAAY,EACZ,OAAO,EACP,OAAO,CACV,CAAC;AACF,YAAA,eAAe,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;AACvC,YAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,SAAS,CAAC,CAAC;AAChE,SAAA;AAAM,aAAA;YACH,eAAe,GAAG,EAAE,CAAC;AACxB,SAAA;AAED,QAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,CAAA,CAAE,CAAC,CAAC;QAEvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC3D,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,eAAe,CAAC;AACrD,KAAA;AACL,CAAC;AAED,eAAe,aAAa,GAAA;AACxB,IAAA,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AACpC,IAAA,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AACzC,MAAM,CAAC,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@provablehq/sdk",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11",
|
|
4
4
|
"description": "A Software Development Kit (SDK) for Zero-Knowledge Transactions",
|
|
5
5
|
"collaborators": [
|
|
6
|
-
"The Provable Team
|
|
6
|
+
"The Provable Team"
|
|
7
7
|
],
|
|
8
8
|
"license": "GPL-3.0",
|
|
9
9
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"keywords": [
|
|
35
35
|
"Aleo",
|
|
36
36
|
"Blockchain",
|
|
37
|
-
"Zero
|
|
37
|
+
"Zero-Knowledge",
|
|
38
38
|
"ZK"
|
|
39
39
|
],
|
|
40
40
|
"bugs": {
|