@aztec/foundation 0.1.0-alpha26 → 0.1.0-alpha29
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/.eslintrc.cjs +34 -5
- package/.tsbuildinfo +1 -1
- package/dest/abi/abi.d.ts +4 -0
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +8 -2
- package/dest/abi/encoder.test.d.ts +2 -0
- package/dest/abi/encoder.test.d.ts.map +1 -0
- package/dest/abi/encoder.test.js +74 -0
- package/dest/eth-address/eth_address.test.js +10 -2
- package/dest/eth-address/index.d.ts +6 -1
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +11 -4
- package/dest/fields/fields.d.ts.map +1 -1
- package/dest/fields/fields.js +6 -6
- package/dest/fields/point.d.ts +1 -0
- package/dest/fields/point.d.ts.map +1 -1
- package/dest/fields/point.js +2 -1
- package/dest/json-rpc/client/index.d.ts +1 -1
- package/dest/json-rpc/client/index.d.ts.map +1 -1
- package/dest/json-rpc/client/index.js +2 -2
- package/dest/json-rpc/client/json_rpc_client.test.js +2 -2
- package/dest/json-rpc/index.d.ts +1 -2
- package/dest/json-rpc/index.d.ts.map +1 -1
- package/dest/json-rpc/index.js +2 -3
- package/dest/log/logger.js +2 -2
- package/dest/mutex/mutex_database.d.ts.map +1 -1
- package/dest/transport/interface/connector.d.ts.map +1 -1
- package/dest/transport/interface/listener.d.ts.map +1 -1
- package/dest/transport/interface/socket.d.ts.map +1 -1
- package/dest/transport/transport_client.d.ts +1 -1
- package/dest/transport/transport_client.d.ts.map +1 -1
- package/dest/transport/transport_client.js +1 -1
- package/dest/wasm/{wasm/empty_wasi_sdk.d.ts → empty_wasi_sdk.d.ts} +1 -1
- package/dest/wasm/empty_wasi_sdk.d.ts.map +1 -0
- package/dest/wasm/{wasm/empty_wasi_sdk.js → empty_wasi_sdk.js} +2 -2
- package/dest/wasm/index.d.ts +1 -4
- package/dest/wasm/index.d.ts.map +1 -1
- package/dest/wasm/index.js +2 -5
- package/dest/wasm/{wasm/wasm_module.d.ts → wasm_module.d.ts} +1 -1
- package/dest/wasm/wasm_module.d.ts.map +1 -0
- package/dest/wasm/{wasm/wasm_module.js → wasm_module.js} +4 -4
- package/dest/wasm/wasm_module.test.d.ts.map +1 -0
- package/dest/wasm/wasm_module.test.js +24 -0
- package/dest/worker/browser/index.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/browser/index.js +1 -1
- package/dest/{wasm/worker → worker}/browser/start_web_module.d.ts +1 -1
- package/dest/worker/browser/start_web_module.d.ts.map +1 -0
- package/dest/worker/browser/start_web_module.js +22 -0
- package/dest/worker/browser/web_data_store.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/browser/web_data_store.js +1 -1
- package/dest/worker/browser/web_worker.d.ts.map +1 -0
- package/dest/worker/browser/web_worker.js +23 -0
- package/dest/{wasm/worker/node/node_data_store.d.ts → worker/data_store.d.ts} +4 -6
- package/dest/worker/data_store.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/data_store.js +1 -1
- package/dest/worker/index.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/index.js +1 -1
- package/dest/worker/node/index.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/node/index.js +1 -1
- package/dest/worker/node/node_data_store.d.ts +12 -0
- package/dest/worker/node/node_data_store.d.ts.map +1 -0
- package/dest/worker/node/node_data_store.js +21 -0
- package/dest/worker/node/node_worker.d.ts.map +1 -0
- package/dest/worker/node/node_worker.js +20 -0
- package/dest/worker/node/start_node_module.d.ts.map +1 -0
- package/dest/worker/node/start_node_module.js +26 -0
- package/dest/{wasm/worker → worker}/wasm_worker.d.ts +1 -1
- package/dest/worker/wasm_worker.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/wasm_worker.js +1 -1
- package/dest/worker/worker_pool.d.ts.map +1 -0
- package/dest/{wasm/worker → worker}/worker_pool.js +2 -2
- package/package.json +4 -1
- package/src/abi/abi.ts +4 -0
- package/src/abi/encoder.test.ts +78 -0
- package/src/abi/encoder.ts +5 -1
- package/src/eth-address/eth_address.test.ts +11 -1
- package/src/eth-address/index.ts +11 -3
- package/src/fields/fields.ts +5 -6
- package/src/fields/point.ts +1 -0
- package/src/json-rpc/client/index.ts +1 -1
- package/src/json-rpc/client/json_rpc_client.test.ts +1 -1
- package/src/json-rpc/index.ts +2 -2
- package/src/log/logger.ts +1 -1
- package/src/mutex/mutex_database.ts +3 -0
- package/src/transport/interface/connector.ts +1 -0
- package/src/transport/interface/listener.ts +3 -2
- package/src/transport/interface/socket.ts +3 -0
- package/src/transport/transport_client.ts +5 -1
- package/src/wasm/{wasm/empty_wasi_sdk.ts → empty_wasi_sdk.ts} +1 -1
- package/src/wasm/index.ts +1 -4
- package/src/wasm/{wasm/wasm_module.test.ts → wasm_module.test.ts} +1 -1
- package/src/wasm/{wasm/wasm_module.ts → wasm_module.ts} +3 -3
- package/src/{wasm/worker → worker}/browser/start_web_module.ts +2 -2
- package/src/{wasm/worker → worker}/browser/web_worker.ts +2 -2
- package/src/worker/data_store.ts +19 -0
- package/src/{wasm/worker → worker}/node/node_data_store.ts +0 -10
- package/src/{wasm/worker → worker}/node/node_worker.ts +1 -1
- package/src/{wasm/worker → worker}/node/start_node_module.ts +1 -1
- package/src/{wasm/worker → worker}/wasm_worker.ts +1 -1
- package/src/{wasm/worker → worker}/worker_pool.ts +1 -1
- package/tsconfig.dest.json +5 -0
- package/dest/wasm/wasm/empty_wasi_sdk.d.ts.map +0 -1
- package/dest/wasm/wasm/index.d.ts +0 -2
- package/dest/wasm/wasm/index.d.ts.map +0 -1
- package/dest/wasm/wasm/index.js +0 -2
- package/dest/wasm/wasm/wasm_module.d.ts.map +0 -1
- package/dest/wasm/wasm/wasm_module.test.d.ts.map +0 -1
- package/dest/wasm/wasm/wasm_module.test.js +0 -24
- package/dest/wasm/worker/browser/index.d.ts.map +0 -1
- package/dest/wasm/worker/browser/start_web_module.d.ts.map +0 -1
- package/dest/wasm/worker/browser/start_web_module.js +0 -22
- package/dest/wasm/worker/browser/web_data_store.d.ts.map +0 -1
- package/dest/wasm/worker/browser/web_worker.d.ts.map +0 -1
- package/dest/wasm/worker/browser/web_worker.js +0 -23
- package/dest/wasm/worker/data_store.d.ts +0 -9
- package/dest/wasm/worker/data_store.d.ts.map +0 -1
- package/dest/wasm/worker/index.d.ts.map +0 -1
- package/dest/wasm/worker/node/index.d.ts.map +0 -1
- package/dest/wasm/worker/node/node_data_store.d.ts.map +0 -1
- package/dest/wasm/worker/node/node_data_store.js +0 -31
- package/dest/wasm/worker/node/node_worker.d.ts.map +0 -1
- package/dest/wasm/worker/node/node_worker.js +0 -20
- package/dest/wasm/worker/node/start_node_module.d.ts.map +0 -1
- package/dest/wasm/worker/node/start_node_module.js +0 -26
- package/dest/wasm/worker/wasm_worker.d.ts.map +0 -1
- package/dest/wasm/worker/worker_pool.d.ts.map +0 -1
- package/src/wasm/wasm/index.ts +0 -1
- package/src/wasm/worker/data_store.ts +0 -7
- /package/dest/wasm/{wasm/wasm_module.test.d.ts → wasm_module.test.d.ts} +0 -0
- /package/dest/{wasm/worker → worker}/browser/index.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/browser/web_data_store.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/browser/web_worker.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/index.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/node/index.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/node/node_worker.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/node/start_node_module.d.ts +0 -0
- /package/dest/{wasm/worker → worker}/worker_pool.d.ts +0 -0
- /package/src/{wasm/worker → worker}/browser/index.ts +0 -0
- /package/src/{wasm/worker → worker}/browser/web_data_store.ts +0 -0
- /package/src/{wasm/worker → worker}/index.ts +0 -0
- /package/src/{wasm/worker → worker}/node/index.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Buffer } from 'buffer';
|
|
2
|
-
import { randomBytes } from 'crypto';
|
|
3
|
-
import { MemoryFifo } from '
|
|
4
|
-
import { createDebugOnlyLogger } from '
|
|
2
|
+
import { randomBytes } from '../crypto/index.js';
|
|
3
|
+
import { MemoryFifo } from '../fifo/index.js';
|
|
4
|
+
import { createDebugOnlyLogger } from '../log/index.js';
|
|
5
5
|
import { getEmptyWasiSdk } from './empty_wasi_sdk.js';
|
|
6
6
|
/**
|
|
7
7
|
* WasmModule:
|
|
@@ -202,4 +202,4 @@ export class WasmModule {
|
|
|
202
202
|
this.mutexQ.put(true);
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbV9tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS93YXNtX21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFTLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBZ0N0RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFPckI7Ozs7O09BS0c7SUFDSCxZQUNVLE1BQW1DLEVBQ25DLFFBQXFDLEVBQzdDLFVBQVUsR0FBRyxNQUFNO1FBRlgsV0FBTSxHQUFOLE1BQU0sQ0FBNkI7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7UUFYdkMsV0FBTSxHQUFHLElBQUksVUFBVSxFQUFXLENBQUM7UUFjekMsSUFBSSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLE9BQU8sR0FBRyxJQUFJLEVBQUUsYUFBNEIsYUFBYTtRQUN2RixJQUFJLENBQUMsS0FBSyxDQUNSLGdCQUFnQixPQUFPLFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsT0FBTyxXQUMxRixDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUNwQyxJQUFJLENBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDM0Qsd0NBQXdDO1FBQ3hDLDRGQUE0RjtRQUM1RixxR0FBcUc7UUFDckcsc0dBQXNHO1FBQ3RHLG1HQUFtRztRQUNuRyw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLDREQUE0RDtRQUM1RCw4QkFBOEI7UUFDOUIsTUFBTSxTQUFTLEdBQUc7WUFDaEIsc0JBQXNCLEVBQUU7Z0JBQ3RCLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLFVBQVUsRUFBRSxDQUFDLEdBQVcsRUFBRSxNQUFjLEVBQUUsRUFBRTtvQkFDMUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTt3QkFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7cUJBQy9CO2dCQUNILENBQUM7YUFDRjtZQUNELEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUN6QixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsTUFBTSxZQUFZLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN2RTthQUFNO1lBQ0wsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzFCO1FBRUQsK0JBQStCO1FBQy9CLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLE1BQWE7UUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFXLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQixRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxJQUFJLENBQUMsSUFBWSxFQUFFLEdBQUcsSUFBUztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLElBQUksYUFBYSxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJO1lBQ0YsbUVBQW1FO1lBQ25FLG9EQUFvRDtZQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QztRQUFDLE9BQU8sR0FBUSxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixJQUFJLG9CQUFvQixHQUFHLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdFLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNEOzs7T0FHRztJQUNJLFNBQVM7UUFDZCw0RUFBNEU7UUFDNUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGNBQWMsQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUM5QyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLE1BQWMsRUFBRSxHQUFlO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsSUFBWTtRQUNuQyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUNsQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUFDLENBQUM7UUFDeEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm_module.test.d.ts","sourceRoot":"","sources":["../../src/wasm/wasm_module.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import { dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { WasmModule } from './wasm_module.js';
|
|
5
|
+
/**
|
|
6
|
+
* Fetch a simple WASM.
|
|
7
|
+
*/
|
|
8
|
+
async function fetchCode() {
|
|
9
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
return await readFile(`${__dirname}/fixtures/gcd.wasm`);
|
|
11
|
+
}
|
|
12
|
+
describe('simple wasm', () => {
|
|
13
|
+
let wasm;
|
|
14
|
+
beforeAll(async () => {
|
|
15
|
+
wasm = new WasmModule(await fetchCode(), () => ({
|
|
16
|
+
/*no imports*/
|
|
17
|
+
}));
|
|
18
|
+
await wasm.init(1, 1, /* No init method */ null);
|
|
19
|
+
});
|
|
20
|
+
it('should call gcd with correct result', () => {
|
|
21
|
+
expect(wasm.call('gcd', 12312, 12123)).toBe(27);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbV9tb2R1bGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93YXNtL3dhc21fbW9kdWxlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsS0FBSyxVQUFVLFNBQVM7SUFDdEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsT0FBTyxNQUFNLFFBQVEsQ0FBQyxHQUFHLFNBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsSUFBSSxJQUFpQixDQUFDO0lBRXRCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNuQixJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGNBQWM7U0FDZixDQUFDLENBQUMsQ0FBQztRQUNKLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRTtRQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/worker/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './web_worker.js';
|
|
2
2
|
export * from './web_data_store.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ya2VyL2Jyb3dzZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHFCQUFxQixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start_web_module.d.ts","sourceRoot":"","sources":["../../../src/worker/browser/start_web_module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,QAehD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TransportServer, WorkerListener } from '../../transport/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Start the transport server corresponding to this module.
|
|
4
|
+
* @param module - The WasmModule to host.
|
|
5
|
+
*/
|
|
6
|
+
export function startWebModule(module) {
|
|
7
|
+
const dispatch = async ({ fn, args }) => {
|
|
8
|
+
if (fn === '__destroyWorker__') {
|
|
9
|
+
transportServer.stop();
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (!module[fn]) {
|
|
13
|
+
throw new Error(`dispatch error, function not found: ${fn}`);
|
|
14
|
+
}
|
|
15
|
+
return await module[fn](...args);
|
|
16
|
+
};
|
|
17
|
+
const transportListener = new WorkerListener(self);
|
|
18
|
+
const transportServer = new TransportServer(transportListener, dispatch);
|
|
19
|
+
module.addLogger((...args) => transportServer.broadcast({ fn: 'emit', args: ['log', ...args] }));
|
|
20
|
+
transportServer.start();
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfd2ViX21vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93b3JrZXIvYnJvd3Nlci9zdGFydF93ZWJfbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHeEY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFrQjtJQUMvQyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFlLEVBQUUsRUFBRTtRQUNuRCxJQUFJLEVBQUUsS0FBSyxtQkFBbUIsRUFBRTtZQUM5QixlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFFLE1BQWMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlEO1FBQ0QsT0FBTyxNQUFPLE1BQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQztJQUNGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQWMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDMUIsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web_data_store.d.ts","sourceRoot":"","sources":["../../../src/worker/browser/web_data_store.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,EAAE,CAAU;;IAUpB;;;;OAIG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAInD;;;;OAIG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
|
|
@@ -29,4 +29,4 @@ export class WebDataStore {
|
|
|
29
29
|
await this.db.put(key, value);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX2RhdGFfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ya2VyL2Jyb3dzZXIvd2ViX2RhdGFfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFvQixNQUFNLFNBQVMsQ0FBQztBQUMzQyxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFJOUI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFHdkI7UUFDRSx5RUFBeUU7UUFDekUsNkVBQTZFO1FBQzdFLDJFQUEyRTtRQUMzRSwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUUsT0FBZSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNuQixPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNsQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web_worker.d.ts","sourceRoot":"","sources":["../../../src/worker/browser/web_worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAY5G"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TransportClient, WorkerConnector, createDispatchProxy } from '../../transport/index.js';
|
|
2
|
+
import { WasmModule } from '../../wasm/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Instantiate a web worker.
|
|
5
|
+
* @param url - The URL.
|
|
6
|
+
* @param initialMem - Initial memory pages.
|
|
7
|
+
* @param maxMem - Maximum memory pages.
|
|
8
|
+
* @returns The worker.
|
|
9
|
+
*/
|
|
10
|
+
export async function createWebWorker(url, initialMem, maxMem) {
|
|
11
|
+
const worker = new Worker(url);
|
|
12
|
+
const transportConnect = new WorkerConnector(worker);
|
|
13
|
+
const transportClient = new TransportClient(transportConnect);
|
|
14
|
+
await transportClient.open();
|
|
15
|
+
const remoteModule = createDispatchProxy(WasmModule, transportClient);
|
|
16
|
+
remoteModule.destroyWorker = async () => {
|
|
17
|
+
await transportClient.request({ fn: '__destroyWorker__', args: [] });
|
|
18
|
+
transportClient.close();
|
|
19
|
+
};
|
|
20
|
+
await remoteModule.init(initialMem, maxMem);
|
|
21
|
+
return remoteModule;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93b3JrZXIvYnJvd3Nlci93ZWJfd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2pEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEdBQVcsRUFBRSxVQUFtQixFQUFFLE1BQWU7SUFDckYsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBYyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLE1BQU0sWUFBWSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxlQUFlLENBQWUsQ0FBQztJQUNwRixZQUFZLENBQUMsYUFBYSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3RDLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QyxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDIn0=
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { DataStore } from '../data_store.js';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Simple read/write interface for wasm modules.
|
|
5
4
|
*/
|
|
6
|
-
export
|
|
7
|
-
private db;
|
|
8
|
-
constructor(path?: string);
|
|
5
|
+
export interface DataStore {
|
|
9
6
|
/**
|
|
10
7
|
* Get a value from our DB.
|
|
11
8
|
* @param key - The key to look up.
|
|
@@ -16,7 +13,8 @@ export declare class NodeDataStore implements DataStore {
|
|
|
16
13
|
* Set a value in our DB.
|
|
17
14
|
* @param key - The key to update.
|
|
18
15
|
* @param value - The value to set.
|
|
16
|
+
* @returns Nothing.
|
|
19
17
|
*/
|
|
20
18
|
set(key: string, value: Buffer): Promise<void>;
|
|
21
19
|
}
|
|
22
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=data_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data_store.d.ts","sourceRoot":"","sources":["../../src/worker/data_store.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JrZXIvZGF0YV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { WorkerPool } from './worker_pool.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ya2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/worker/node/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './node_worker.js';
|
|
2
2
|
export * from './node_data_store.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ya2VyL25vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { DataStore } from '../data_store.js';
|
|
3
|
+
/**
|
|
4
|
+
* Cache for data used by wasm module.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeDataStore implements DataStore {
|
|
7
|
+
private db;
|
|
8
|
+
constructor(path?: string);
|
|
9
|
+
get(key: string): Promise<Buffer | undefined>;
|
|
10
|
+
set(key: string, value: Buffer): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=node_data_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_data_store.d.ts","sourceRoot":"","sources":["../../../src/worker/node/node_data_store.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,EAAE,CAAU;gBAGR,IAAI,CAAC,EAAE,MAAM;IAMnB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import leveldown from 'leveldown';
|
|
2
|
+
import levelup from 'levelup';
|
|
3
|
+
import memdown from 'memdown';
|
|
4
|
+
/**
|
|
5
|
+
* Cache for data used by wasm module.
|
|
6
|
+
*/
|
|
7
|
+
export class NodeDataStore {
|
|
8
|
+
// eslint-disable-next-line
|
|
9
|
+
constructor(path) {
|
|
10
|
+
// Hack: Cast as any to work around packages "broken" with node16 resolution
|
|
11
|
+
// See https://github.com/microsoft/TypeScript/issues/49160
|
|
12
|
+
this.db = levelup(path ? leveldown(path) : memdown());
|
|
13
|
+
}
|
|
14
|
+
async get(key) {
|
|
15
|
+
return await this.db.get(key).catch(() => { });
|
|
16
|
+
}
|
|
17
|
+
async set(key, value) {
|
|
18
|
+
await this.db.put(key, value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV9kYXRhX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3dvcmtlci9ub2RlL25vZGVfZGF0YV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxPQUFvQixNQUFNLFNBQVMsQ0FBQztBQUMzQyxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUM7QUFJOUI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUd4QiwyQkFBMkI7SUFDM0IsWUFBWSxJQUFhO1FBQ3ZCLDRFQUE0RTtRQUM1RSwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxTQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxPQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNsQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_worker.d.ts","sourceRoot":"","sources":["../../../src/worker/node/node_worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAYlH"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Worker } from 'worker_threads';
|
|
2
|
+
import { NodeConnector, TransportClient, createDispatchProxy } from '../../transport/index.js';
|
|
3
|
+
import { WasmModule } from '../../wasm/wasm_module.js';
|
|
4
|
+
/**
|
|
5
|
+
* Creates a node worker.
|
|
6
|
+
*/
|
|
7
|
+
export async function createNodeWorker(filepath, initialMem, maxMem) {
|
|
8
|
+
const worker = new Worker(filepath);
|
|
9
|
+
const transportConnect = new NodeConnector(worker);
|
|
10
|
+
const transportClient = new TransportClient(transportConnect);
|
|
11
|
+
await transportClient.open();
|
|
12
|
+
const remoteModule = createDispatchProxy(WasmModule, transportClient);
|
|
13
|
+
remoteModule.destroyWorker = async () => {
|
|
14
|
+
await transportClient.request({ fn: '__destroyWorker__', args: [] });
|
|
15
|
+
transportClient.close();
|
|
16
|
+
};
|
|
17
|
+
await remoteModule.init(initialMem, maxMem);
|
|
18
|
+
return remoteModule;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZV93b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ya2VyL25vZGUvbm9kZV93b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBZSxhQUFhLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3ZEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxRQUFnQixFQUFFLFVBQW1CLEVBQUUsTUFBZTtJQUMzRixNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFjLGdCQUFnQixDQUFDLENBQUM7SUFDM0UsTUFBTSxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBZSxDQUFDO0lBQ3BGLFlBQVksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdEMsTUFBTSxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDLENBQUM7SUFDRixNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start_node_module.d.ts","sourceRoot":"","sources":["../../../src/worker/node/start_node_module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,QAejD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { parentPort } from 'worker_threads';
|
|
2
|
+
import { NodeListener, TransportServer } from '../../transport/index.js';
|
|
3
|
+
if (!parentPort) {
|
|
4
|
+
throw new Error('InvalidWorker');
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Start the transport server corresponding to this module.
|
|
8
|
+
* @param module - The WasmModule to host.
|
|
9
|
+
*/
|
|
10
|
+
export function startNodeModule(module) {
|
|
11
|
+
const dispatch = async ({ fn, args }) => {
|
|
12
|
+
if (fn === '__destroyWorker__') {
|
|
13
|
+
transportServer.stop();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (!module[fn]) {
|
|
17
|
+
throw new Error(`dispatch error, function not found: ${fn}`);
|
|
18
|
+
}
|
|
19
|
+
return await module[fn](...args);
|
|
20
|
+
};
|
|
21
|
+
const transportListener = new NodeListener();
|
|
22
|
+
const transportServer = new TransportServer(transportListener, dispatch);
|
|
23
|
+
module.addLogger((...args) => transportServer.broadcast({ fn: 'emit', args: ['log', ...args] }));
|
|
24
|
+
transportServer.start();
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRfbm9kZV9tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd29ya2VyL25vZGUvc3RhcnRfbm9kZV9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBZSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdEYsSUFBSSxDQUFDLFVBQVUsRUFBRTtJQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7Q0FDbEM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQWtCO0lBQ2hELE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQWUsRUFBRSxFQUFFO1FBQ25ELElBQUksRUFBRSxLQUFLLG1CQUFtQixFQUFFO1lBQzlCLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUUsTUFBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxPQUFPLE1BQU8sTUFBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzdDLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFjLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RGLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEcsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzFCLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm_worker.d.ts","sourceRoot":"","sources":["../../src/worker/wasm_worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAAE,aAAa,IAAI,IAAI,CAAA;CAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FzbV93b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ya2VyL3dhc21fd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker_pool.d.ts","sourceRoot":"","sources":["../../src/worker/worker_pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;AACxF;;;;GAIG;AACH,qBAAa,UAAU;IAYrB;;OAEG;IACH,OAAc,SAAS,SAAQ;IAC/B;;OAEG;IACH,OAAO,CAAC,OAAO,CAAoB;IAEnC;;;;;OAKG;WACU,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM;IAM7D;;;;;OAKG;IACU,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAuB;IAY7F;;OAEG;IACU,OAAO;CAGrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createDebugLogger } from '
|
|
1
|
+
import { createDebugLogger } from '../log/index.js';
|
|
2
2
|
const debug = createDebugLogger('bb:worker_pool');
|
|
3
3
|
/**
|
|
4
4
|
* Allocates a pool of WasmWorker's.
|
|
@@ -59,4 +59,4 @@ export class WorkerPool {
|
|
|
59
59
|
* The maximum number of memory pages to be used by the webassembly.
|
|
60
60
|
*/
|
|
61
61
|
WorkerPool.MAX_PAGES = 8192;
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3Bvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ya2VyL3dvcmtlcl9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3BELE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFPbEQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBZ0JFOztXQUVHO1FBQ0ssWUFBTyxHQUFpQixFQUFFLENBQUM7SUFzQ3JDLENBQUM7SUFwQ0M7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUEwQixFQUFFLFFBQWdCO1FBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBMEIsRUFBRSxRQUFnQixFQUFFLE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUztRQUMzRixLQUFLLENBQUMsWUFBWSxRQUFRLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUM7YUFDWixJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ1AsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDdkcsQ0FBQztRQUVGLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUF2REQsdURBQXVEO0FBQ3ZELEtBQUs7QUFDTCxzSEFBc0g7QUFDdEgsZ0hBQWdIO0FBQ2hILGlIQUFpSDtBQUNqSCxxR0FBcUc7QUFDckcsNERBQTREO0FBQzVELGtHQUFrRztBQUNsRywwRkFBMEY7QUFDMUYsNkdBQTZHO0FBQzdHLGtDQUFrQztBQUNsQzs7R0FFRztBQUNXLG9CQUFTLEdBQUcsSUFBSSxBQUFQLENBQVEifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/foundation",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-alpha29",
|
|
4
4
|
"exports": {
|
|
5
5
|
"./eslint": "./.eslintrc.cjs",
|
|
6
6
|
"./prettier": "./.prettierrc.json",
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
"./eth-address": "./dest/eth-address/index.js",
|
|
14
14
|
"./fifo": "./dest/fifo/index.js",
|
|
15
15
|
"./json-rpc": "./dest/json-rpc/index.js",
|
|
16
|
+
"./json-rpc/server": "./dest/json-rpc/server/index.js",
|
|
17
|
+
"./json-rpc/client": "./dest/json-rpc/client/index.js",
|
|
16
18
|
"./log": "./dest/log/index.js",
|
|
17
19
|
"./mutex": "./dest/mutex/index.js",
|
|
18
20
|
"./fields": "./dest/fields/index.js",
|
|
@@ -23,6 +25,7 @@
|
|
|
23
25
|
"./timer": "./dest/timer/index.js",
|
|
24
26
|
"./transport": "./dest/transport/index.js",
|
|
25
27
|
"./wasm": "./dest/wasm/index.js",
|
|
28
|
+
"./worker": "./dest/worker/index.js",
|
|
26
29
|
"./bigint-buffer": "./dest/bigint-buffer/index.js",
|
|
27
30
|
"./types": "./dest/types/index.js"
|
|
28
31
|
},
|
package/src/abi/abi.ts
CHANGED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ABIParameterVisibility, FunctionAbi, FunctionType } from './abi.js';
|
|
2
|
+
import { encodeArguments } from './encoder.js';
|
|
3
|
+
|
|
4
|
+
describe('abi/encoder', () => {
|
|
5
|
+
it('throws when passing string argument as field', () => {
|
|
6
|
+
const testFunctionAbi: FunctionAbi = {
|
|
7
|
+
name: 'constructor',
|
|
8
|
+
functionType: FunctionType.SECRET,
|
|
9
|
+
isInternal: false,
|
|
10
|
+
parameters: [
|
|
11
|
+
{
|
|
12
|
+
name: 'owner',
|
|
13
|
+
type: {
|
|
14
|
+
kind: 'field',
|
|
15
|
+
},
|
|
16
|
+
visibility: ABIParameterVisibility.SECRET,
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
returnTypes: [],
|
|
20
|
+
bytecode: '',
|
|
21
|
+
verificationKey: '',
|
|
22
|
+
};
|
|
23
|
+
const args = ['garbage'];
|
|
24
|
+
|
|
25
|
+
expect(() => encodeArguments(testFunctionAbi, args)).toThrowError('Invalid argument "garbage" of type field');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('throws when passing string argument as integer', () => {
|
|
29
|
+
const testFunctionAbi: FunctionAbi = {
|
|
30
|
+
name: 'constructor',
|
|
31
|
+
functionType: FunctionType.SECRET,
|
|
32
|
+
isInternal: false,
|
|
33
|
+
parameters: [
|
|
34
|
+
{
|
|
35
|
+
name: 'isOwner',
|
|
36
|
+
type: {
|
|
37
|
+
sign: 'value',
|
|
38
|
+
width: 5,
|
|
39
|
+
kind: 'integer',
|
|
40
|
+
},
|
|
41
|
+
visibility: ABIParameterVisibility.SECRET,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
returnTypes: [],
|
|
45
|
+
bytecode: '',
|
|
46
|
+
verificationKey: '',
|
|
47
|
+
};
|
|
48
|
+
const args = ['garbage'];
|
|
49
|
+
expect(() => encodeArguments(testFunctionAbi, args)).toThrowError('Cannot convert garbage to a BigInt');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it.only('throws when passing object argument as field', () => {
|
|
53
|
+
const testFunctionAbi: FunctionAbi = {
|
|
54
|
+
name: 'constructor',
|
|
55
|
+
functionType: FunctionType.SECRET,
|
|
56
|
+
isInternal: false,
|
|
57
|
+
parameters: [
|
|
58
|
+
{
|
|
59
|
+
name: 'owner',
|
|
60
|
+
type: {
|
|
61
|
+
kind: 'field',
|
|
62
|
+
},
|
|
63
|
+
visibility: ABIParameterVisibility.SECRET,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
returnTypes: [],
|
|
67
|
+
bytecode: '',
|
|
68
|
+
verificationKey: '',
|
|
69
|
+
};
|
|
70
|
+
const args = [
|
|
71
|
+
{
|
|
72
|
+
value: 'garbage',
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
expect(() => encodeArguments(testFunctionAbi, args)).toThrowError('Argument cannot be serialised to a field');
|
|
77
|
+
});
|
|
78
|
+
});
|
package/src/abi/encoder.ts
CHANGED
|
@@ -29,9 +29,13 @@ class ArgumentEncoder {
|
|
|
29
29
|
} else if (typeof arg === 'object') {
|
|
30
30
|
if (typeof arg.toField === 'function') {
|
|
31
31
|
this.flattened.push(arg.toField());
|
|
32
|
-
} else {
|
|
32
|
+
} else if (arg instanceof Fr) {
|
|
33
33
|
this.flattened.push(arg);
|
|
34
|
+
} else {
|
|
35
|
+
throw new Error('Argument cannot be serialised to a field');
|
|
34
36
|
}
|
|
37
|
+
} else {
|
|
38
|
+
throw new Error(`Invalid argument "${arg}" of type ${abiType.kind}`);
|
|
35
39
|
}
|
|
36
40
|
break;
|
|
37
41
|
case 'boolean':
|
|
@@ -8,7 +8,7 @@ describe('address', () => {
|
|
|
8
8
|
|
|
9
9
|
it('should return correct buffer', () => {
|
|
10
10
|
const address = EthAddress.fromString('0xc6d9d2cd449a754c494264e1809c50e34d64562b');
|
|
11
|
-
expect(address.
|
|
11
|
+
expect(address.toBuffer20()).toEqual(Buffer.from('c6d9d2cD449A754c494264e1809c50e34D64562b', 'hex'));
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
it('should return correct 32 byte buffer', () => {
|
|
@@ -32,6 +32,16 @@ describe('address', () => {
|
|
|
32
32
|
expect(EthAddress.ZERO.toString()).toBe('0x0000000000000000000000000000000000000000');
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
+
it('should check if is zero', () => {
|
|
36
|
+
const zero = EthAddress.fromString('0x0000000000000000000000000000000000000000');
|
|
37
|
+
expect(zero.isZero()).toBeTruthy();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('should encode and decode as field', () => {
|
|
41
|
+
const address = EthAddress.fromString('0xc6d9d2cd449a754c494264e1809c50e34d64562b');
|
|
42
|
+
expect(EthAddress.fromField(address.toField())).toEqual(address);
|
|
43
|
+
});
|
|
44
|
+
|
|
35
45
|
describe('isAddress', () => {
|
|
36
46
|
it(`should return true for valid prefixed address`, () => {
|
|
37
47
|
expect(EthAddress.isAddress('0xc6d9d2cd449a754c494264e1809c50e34d64562b')).toBe(true);
|
package/src/eth-address/index.ts
CHANGED
|
@@ -21,7 +21,7 @@ export class EthAddress {
|
|
|
21
21
|
constructor(private buffer: Buffer) {
|
|
22
22
|
if (buffer.length === 32) {
|
|
23
23
|
if (!buffer.slice(0, 12).equals(Buffer.alloc(12))) {
|
|
24
|
-
throw new Error(
|
|
24
|
+
throw new Error(`Invalid address buffer: ${buffer.toString('hex')}`);
|
|
25
25
|
} else {
|
|
26
26
|
this.buffer = buffer.slice(12);
|
|
27
27
|
}
|
|
@@ -149,7 +149,7 @@ export class EthAddress {
|
|
|
149
149
|
* @returns A boolean value indicating whether the two instances are equal (true) or not (false).
|
|
150
150
|
*/
|
|
151
151
|
public equals(rhs: EthAddress) {
|
|
152
|
-
return this.buffer.equals(rhs.
|
|
152
|
+
return this.buffer.equals(rhs.buffer);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
/**
|
|
@@ -174,6 +174,14 @@ export class EthAddress {
|
|
|
174
174
|
return EthAddress.toChecksumAddress(this.buffer.toString('hex'));
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
+
/**
|
|
178
|
+
* Alias for toBuffer32.
|
|
179
|
+
* @returns A 32-byte Buffer containing the padded Ethereum address.
|
|
180
|
+
*/
|
|
181
|
+
public toBuffer() {
|
|
182
|
+
return this.toBuffer32();
|
|
183
|
+
}
|
|
184
|
+
|
|
177
185
|
/**
|
|
178
186
|
* Returns the internal Buffer representation of the Ethereum address.
|
|
179
187
|
* This method is useful when working with raw binary data or when
|
|
@@ -181,7 +189,7 @@ export class EthAddress {
|
|
|
181
189
|
*
|
|
182
190
|
* @returns A Buffer instance containing the 20-byte Ethereum address.
|
|
183
191
|
*/
|
|
184
|
-
public
|
|
192
|
+
public toBuffer20() {
|
|
185
193
|
return this.buffer;
|
|
186
194
|
}
|
|
187
195
|
|
package/src/fields/fields.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { randomBytes } from 'crypto';
|
|
2
|
-
|
|
3
1
|
import { toBigIntBE, toBufferBE, toHex } from '../bigint-buffer/index.js';
|
|
2
|
+
import { randomBytes } from '../crypto/index.js';
|
|
4
3
|
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
5
4
|
|
|
6
5
|
/**
|
|
@@ -21,9 +20,9 @@ export class Fr {
|
|
|
21
20
|
|
|
22
21
|
constructor(value: bigint | number) {
|
|
23
22
|
this.value = BigInt(value);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
if (value > Fr.MAX_VALUE) {
|
|
24
|
+
throw new Error(`Fr out of range ${value}.`);
|
|
25
|
+
}
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
/**
|
|
@@ -171,7 +170,7 @@ export class Fq {
|
|
|
171
170
|
public readonly value: bigint,
|
|
172
171
|
) {
|
|
173
172
|
if (value > Fq.MAX_VALUE) {
|
|
174
|
-
throw new Error(`
|
|
173
|
+
throw new Error(`Fq out of range ${value}.`);
|
|
175
174
|
}
|
|
176
175
|
}
|
|
177
176
|
|
package/src/fields/point.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createJsonRpcClient,
|
|
1
|
+
export { createJsonRpcClient, mustSucceedFetch, defaultFetch } from './json_rpc_client.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import request from 'supertest';
|
|
2
2
|
|
|
3
3
|
import { TestNote, TestState } from '../fixtures/test_state.js';
|
|
4
|
-
import { JsonRpcServer } from '../server/
|
|
4
|
+
import { JsonRpcServer } from '../server/index.js';
|
|
5
5
|
import { createJsonRpcClient } from './json_rpc_client.js';
|
|
6
6
|
|
|
7
7
|
test('test an RPC function over client', async () => {
|
package/src/json-rpc/index.ts
CHANGED
|
@@ -4,5 +4,5 @@ export {
|
|
|
4
4
|
JsonEncodedClass,
|
|
5
5
|
ClassConverter,
|
|
6
6
|
} from './class_converter.js';
|
|
7
|
-
|
|
8
|
-
export {
|
|
7
|
+
|
|
8
|
+
export { JsonStringify } from './convert.js';
|