@aztec/bb.js 3.0.0-nightly.20251026 → 3.0.0-nightly.20251030-2

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.
Files changed (147) hide show
  1. package/README.md +1 -1
  2. package/dest/browser/barretenberg/backend.js +13 -13
  3. package/dest/browser/barretenberg/index.d.ts +1 -1
  4. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  5. package/dest/browser/barretenberg/index.js +2 -2
  6. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  7. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  8. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  9. package/dest/browser/bb_backends/wasm.d.ts +2 -9
  10. package/dest/browser/bb_backends/wasm.d.ts.map +1 -1
  11. package/dest/browser/bb_backends/wasm.js +3 -10
  12. package/dest/browser/bbapi_exception.d.ts +7 -0
  13. package/dest/browser/bbapi_exception.d.ts.map +1 -0
  14. package/dest/browser/bbapi_exception.js +14 -0
  15. package/dest/browser/cbind/generate.js +93 -1
  16. package/dest/browser/cbind/generated/api_types.d.ts +623 -377
  17. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  18. package/dest/browser/cbind/generated/api_types.js +778 -452
  19. package/dest/browser/cbind/generated/async.d.ts +15 -10
  20. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  21. package/dest/browser/cbind/generated/async.js +304 -96
  22. package/dest/browser/cbind/generated/curve_constants.d.ts +45 -0
  23. package/dest/browser/cbind/generated/curve_constants.d.ts.map +1 -0
  24. package/dest/browser/cbind/generated/curve_constants.js +45 -0
  25. package/dest/browser/cbind/generated/sync.d.ts +15 -10
  26. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  27. package/dest/browser/cbind/generated/sync.js +299 -96
  28. package/dest/browser/cbind/schema_compiler.d.ts.map +1 -1
  29. package/dest/browser/cbind/schema_compiler.js +24 -4
  30. package/dest/browser/index.d.ts +3 -1
  31. package/dest/browser/index.d.ts.map +1 -1
  32. package/dest/browser/index.js +4 -2
  33. package/dest/browser/serialize/index.d.ts +0 -1
  34. package/dest/browser/serialize/index.d.ts.map +1 -1
  35. package/dest/browser/serialize/index.js +1 -2
  36. package/dest/browser/types/fields.d.ts +6 -26
  37. package/dest/browser/types/fields.d.ts.map +1 -1
  38. package/dest/browser/types/fields.js +15 -56
  39. package/dest/browser/types/point.d.ts +8 -6
  40. package/dest/browser/types/point.d.ts.map +1 -1
  41. package/dest/browser/types/point.js +12 -15
  42. package/dest/node/barretenberg/backend.js +13 -13
  43. package/dest/node/barretenberg/index.d.ts +1 -1
  44. package/dest/node/barretenberg/index.d.ts.map +1 -1
  45. package/dest/node/barretenberg/index.js +2 -2
  46. package/dest/node/barretenberg/poseidon.bench.test.js +3 -2
  47. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  48. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  49. package/dest/node/bb_backends/wasm.d.ts +2 -9
  50. package/dest/node/bb_backends/wasm.d.ts.map +1 -1
  51. package/dest/node/bb_backends/wasm.js +3 -10
  52. package/dest/node/bbapi_exception.d.ts +7 -0
  53. package/dest/node/bbapi_exception.d.ts.map +1 -0
  54. package/dest/node/bbapi_exception.js +14 -0
  55. package/dest/node/cbind/generate.js +93 -1
  56. package/dest/node/cbind/generated/api_types.d.ts +623 -377
  57. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  58. package/dest/node/cbind/generated/api_types.js +778 -452
  59. package/dest/node/cbind/generated/async.d.ts +15 -10
  60. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  61. package/dest/node/cbind/generated/async.js +304 -96
  62. package/dest/node/cbind/generated/curve_constants.d.ts +45 -0
  63. package/dest/node/cbind/generated/curve_constants.d.ts.map +1 -0
  64. package/dest/node/cbind/generated/curve_constants.js +45 -0
  65. package/dest/node/cbind/generated/sync.d.ts +15 -10
  66. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  67. package/dest/node/cbind/generated/sync.js +299 -96
  68. package/dest/node/cbind/schema_compiler.d.ts.map +1 -1
  69. package/dest/node/cbind/schema_compiler.js +24 -4
  70. package/dest/node/index.d.ts +3 -1
  71. package/dest/node/index.d.ts.map +1 -1
  72. package/dest/node/index.js +4 -2
  73. package/dest/node/serialize/index.d.ts +0 -1
  74. package/dest/node/serialize/index.d.ts.map +1 -1
  75. package/dest/node/serialize/index.js +1 -2
  76. package/dest/node/types/fields.d.ts +6 -26
  77. package/dest/node/types/fields.d.ts.map +1 -1
  78. package/dest/node/types/fields.js +15 -56
  79. package/dest/node/types/point.d.ts +8 -6
  80. package/dest/node/types/point.d.ts.map +1 -1
  81. package/dest/node/types/point.js +12 -15
  82. package/dest/node-cjs/barretenberg/backend.js +12 -12
  83. package/dest/node-cjs/barretenberg/index.d.ts +1 -1
  84. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  85. package/dest/node-cjs/barretenberg/index.js +2 -2
  86. package/dest/node-cjs/barretenberg/poseidon.bench.test.js +5 -4
  87. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  88. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.js +1 -1
  89. package/dest/node-cjs/bb_backends/wasm.d.ts +2 -9
  90. package/dest/node-cjs/bb_backends/wasm.d.ts.map +1 -1
  91. package/dest/node-cjs/bb_backends/wasm.js +3 -10
  92. package/dest/node-cjs/bbapi_exception.d.ts +7 -0
  93. package/dest/node-cjs/bbapi_exception.d.ts.map +1 -0
  94. package/dest/node-cjs/bbapi_exception.js +18 -0
  95. package/dest/node-cjs/cbind/generate.js +93 -1
  96. package/dest/node-cjs/cbind/generated/api_types.d.ts +623 -377
  97. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  98. package/dest/node-cjs/cbind/generated/api_types.js +848 -492
  99. package/dest/node-cjs/cbind/generated/async.d.ts +15 -10
  100. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  101. package/dest/node-cjs/cbind/generated/async.js +303 -95
  102. package/dest/node-cjs/cbind/generated/curve_constants.d.ts +45 -0
  103. package/dest/node-cjs/cbind/generated/curve_constants.d.ts.map +1 -0
  104. package/dest/node-cjs/cbind/generated/curve_constants.js +48 -0
  105. package/dest/node-cjs/cbind/generated/sync.d.ts +15 -10
  106. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  107. package/dest/node-cjs/cbind/generated/sync.js +298 -95
  108. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +1 -1
  109. package/dest/node-cjs/cbind/schema_compiler.js +24 -4
  110. package/dest/node-cjs/index.d.ts +3 -1
  111. package/dest/node-cjs/index.d.ts.map +1 -1
  112. package/dest/node-cjs/index.js +23 -8
  113. package/dest/node-cjs/serialize/index.d.ts +0 -1
  114. package/dest/node-cjs/serialize/index.d.ts.map +1 -1
  115. package/dest/node-cjs/serialize/index.js +1 -2
  116. package/dest/node-cjs/types/fields.d.ts +6 -26
  117. package/dest/node-cjs/types/fields.d.ts.map +1 -1
  118. package/dest/node-cjs/types/fields.js +15 -57
  119. package/dest/node-cjs/types/point.d.ts +8 -6
  120. package/dest/node-cjs/types/point.d.ts.map +1 -1
  121. package/dest/node-cjs/types/point.js +13 -16
  122. package/package.json +4 -3
  123. package/src/barretenberg/backend.ts +12 -12
  124. package/src/barretenberg/index.ts +1 -1
  125. package/src/barretenberg/poseidon.bench.test.ts +2 -1
  126. package/src/barretenberg_wasm/barretenberg_wasm_main/heap_allocator.ts +4 -4
  127. package/src/bb_backends/wasm.ts +2 -9
  128. package/src/bbapi_exception.ts +13 -0
  129. package/src/cbind/generate.ts +99 -0
  130. package/src/cbind/schema_compiler.ts +25 -3
  131. package/src/index.ts +28 -1
  132. package/src/serialize/index.ts +0 -1
  133. package/src/types/fields.ts +14 -63
  134. package/src/types/point.ts +13 -19
  135. package/dest/browser/serialize/buffer_reader.d.ts +0 -28
  136. package/dest/browser/serialize/buffer_reader.d.ts.map +0 -1
  137. package/dest/browser/serialize/buffer_reader.js +0 -66
  138. package/dest/node/serialize/buffer_reader.d.ts +0 -28
  139. package/dest/node/serialize/buffer_reader.d.ts.map +0 -1
  140. package/dest/node/serialize/buffer_reader.js +0 -66
  141. package/dest/node-cjs/serialize/buffer_reader.d.ts +0 -28
  142. package/dest/node-cjs/serialize/buffer_reader.d.ts.map +0 -1
  143. package/dest/node-cjs/serialize/buffer_reader.js +0 -70
  144. package/src/cbind/generated/api_types.ts +0 -3757
  145. package/src/cbind/generated/async.ts +0 -504
  146. package/src/cbind/generated/sync.ts +0 -455
  147. package/src/serialize/buffer_reader.ts +0 -85
@@ -1,6 +1,7 @@
1
1
  // AUTOGENERATED FILE - DO NOT EDIT
2
2
  import { Decoder, Encoder } from 'msgpackr';
3
- import { fromAesDecrypt, fromAesEncrypt, fromBlake2s, fromBlake2sToField, fromBn254FrSqrt, fromCircuitComputeVk, fromCircuitProve, fromCircuitStats, fromCircuitVerify, fromCircuitWriteSolidityVerifier, fromClientIvcAccumulate, fromClientIvcCheckPrecomputedVk, fromClientIvcComputeIvcVk, fromClientIvcComputeStandaloneVk, fromClientIvcLoad, fromClientIvcProve, fromClientIvcStart, fromClientIvcStats, fromClientIvcVerify, fromEcdsaSecp256k1ComputePublicKey, fromEcdsaSecp256k1ConstructSignature, fromEcdsaSecp256k1RecoverPublicKey, fromEcdsaSecp256k1VerifySignature, fromEcdsaSecp256r1ComputePublicKey, fromEcdsaSecp256r1ConstructSignature, fromEcdsaSecp256r1RecoverPublicKey, fromEcdsaSecp256r1VerifySignature, fromGrumpkinAdd, fromGrumpkinBatchMul, fromGrumpkinGetRandomFr, fromGrumpkinMul, fromGrumpkinReduce512, fromMegaVkAsFields, fromPedersenCommit, fromPedersenHash, fromPedersenHashBuffer, fromPoseidon2Hash, fromPoseidon2HashAccumulate, fromPoseidon2Permutation, fromSchnorrComputePublicKey, fromSchnorrConstructSignature, fromSchnorrVerifySignature, fromSecp256k1GetRandomFr, fromSecp256k1Mul, fromSecp256k1Reduce512, fromShutdown, fromSrsInitGrumpkinSrs, fromSrsInitSrs, fromVkAsFields, toAesDecryptResponse, toAesEncryptResponse, toBlake2sResponse, toBlake2sToFieldResponse, toBn254FrSqrtResponse, toCircuitComputeVkResponse, toCircuitInfoResponse, toCircuitProveResponse, toCircuitVerifyResponse, toCircuitWriteSolidityVerifierResponse, toClientIvcAccumulateResponse, toClientIvcCheckPrecomputedVkResponse, toClientIvcComputeIvcVkResponse, toClientIvcComputeStandaloneVkResponse, toClientIvcLoadResponse, toClientIvcProveResponse, toClientIvcStartResponse, toClientIvcStatsResponse, toClientIvcVerifyResponse, toEcdsaSecp256k1ComputePublicKeyResponse, toEcdsaSecp256k1ConstructSignatureResponse, toEcdsaSecp256k1RecoverPublicKeyResponse, toEcdsaSecp256k1VerifySignatureResponse, toEcdsaSecp256r1ComputePublicKeyResponse, toEcdsaSecp256r1ConstructSignatureResponse, toEcdsaSecp256r1RecoverPublicKeyResponse, toEcdsaSecp256r1VerifySignatureResponse, toGrumpkinAddResponse, toGrumpkinBatchMulResponse, toGrumpkinGetRandomFrResponse, toGrumpkinMulResponse, toGrumpkinReduce512Response, toMegaVkAsFieldsResponse, toPedersenCommitResponse, toPedersenHashBufferResponse, toPedersenHashResponse, toPoseidon2HashAccumulateResponse, toPoseidon2HashResponse, toPoseidon2PermutationResponse, toSchnorrComputePublicKeyResponse, toSchnorrConstructSignatureResponse, toSchnorrVerifySignatureResponse, toSecp256k1GetRandomFrResponse, toSecp256k1MulResponse, toSecp256k1Reduce512Response, toShutdownResponse, toSrsInitGrumpkinSrsResponse, toSrsInitSrsResponse, toVkAsFieldsResponse } from './api_types.js';
3
+ import { BBApiException } from '../../bbapi_exception.js';
4
+ import { fromAesDecrypt, fromAesEncrypt, fromBlake2s, fromBlake2sToField, fromBn254FqSqrt, fromBn254FrSqrt, fromBn254G1FromCompressed, fromBn254G1IsOnCurve, fromBn254G1Mul, fromBn254G2Mul, fromChonkAccumulate, fromChonkCheckPrecomputedVk, fromChonkComputeIvcVk, fromChonkComputeStandaloneVk, fromChonkLoad, fromChonkProve, fromChonkStart, fromChonkStats, fromChonkVerify, fromCircuitComputeVk, fromCircuitProve, fromCircuitStats, fromCircuitVerify, fromCircuitWriteSolidityVerifier, fromEcdsaSecp256k1ComputePublicKey, fromEcdsaSecp256k1ConstructSignature, fromEcdsaSecp256k1RecoverPublicKey, fromEcdsaSecp256k1VerifySignature, fromEcdsaSecp256r1ComputePublicKey, fromEcdsaSecp256r1ConstructSignature, fromEcdsaSecp256r1RecoverPublicKey, fromEcdsaSecp256r1VerifySignature, fromGrumpkinAdd, fromGrumpkinBatchMul, fromGrumpkinGetRandomFr, fromGrumpkinMul, fromGrumpkinReduce512, fromMegaVkAsFields, fromPedersenCommit, fromPedersenHash, fromPedersenHashBuffer, fromPoseidon2Hash, fromPoseidon2HashAccumulate, fromPoseidon2Permutation, fromSchnorrComputePublicKey, fromSchnorrConstructSignature, fromSchnorrVerifySignature, fromSecp256k1GetRandomFr, fromSecp256k1Mul, fromSecp256k1Reduce512, fromShutdown, fromSrsInitGrumpkinSrs, fromSrsInitSrs, fromVkAsFields, toAesDecryptResponse, toAesEncryptResponse, toBlake2sResponse, toBlake2sToFieldResponse, toBn254FqSqrtResponse, toBn254FrSqrtResponse, toBn254G1FromCompressedResponse, toBn254G1IsOnCurveResponse, toBn254G1MulResponse, toBn254G2MulResponse, toChonkAccumulateResponse, toChonkCheckPrecomputedVkResponse, toChonkComputeIvcVkResponse, toChonkComputeStandaloneVkResponse, toChonkLoadResponse, toChonkProveResponse, toChonkStartResponse, toChonkStatsResponse, toChonkVerifyResponse, toCircuitComputeVkResponse, toCircuitInfoResponse, toCircuitProveResponse, toCircuitVerifyResponse, toCircuitWriteSolidityVerifierResponse, toEcdsaSecp256k1ComputePublicKeyResponse, toEcdsaSecp256k1ConstructSignatureResponse, toEcdsaSecp256k1RecoverPublicKeyResponse, toEcdsaSecp256k1VerifySignatureResponse, toEcdsaSecp256r1ComputePublicKeyResponse, toEcdsaSecp256r1ConstructSignatureResponse, toEcdsaSecp256r1RecoverPublicKeyResponse, toEcdsaSecp256r1VerifySignatureResponse, toGrumpkinAddResponse, toGrumpkinBatchMulResponse, toGrumpkinGetRandomFrResponse, toGrumpkinMulResponse, toGrumpkinReduce512Response, toMegaVkAsFieldsResponse, toPedersenCommitResponse, toPedersenHashBufferResponse, toPedersenHashResponse, toPoseidon2HashAccumulateResponse, toPoseidon2HashResponse, toPoseidon2PermutationResponse, toSchnorrComputePublicKeyResponse, toSchnorrConstructSignatureResponse, toSchnorrVerifySignatureResponse, toSecp256k1GetRandomFrResponse, toSecp256k1MulResponse, toSecp256k1Reduce512Response, toShutdownResponse, toSrsInitGrumpkinSrsResponse, toSrsInitSrsResponse, toVkAsFieldsResponse } from './api_types.js';
4
5
  function msgpackCall(backend, input) { const inputBuffer = new Encoder({ useRecords: false }).pack(input); const encodedResult = backend.call(inputBuffer); return new Decoder({ useRecords: false }).unpack(encodedResult); }
5
6
  export class SyncApi {
6
7
  constructor(backend) {
@@ -9,392 +10,594 @@ export class SyncApi {
9
10
  circuitProve(command) {
10
11
  const msgpackCommand = fromCircuitProve(command);
11
12
  const [variantName, result] = msgpackCall(this.backend, [["CircuitProve", msgpackCommand]]);
13
+ if (variantName === 'ErrorResponse') {
14
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
15
+ }
12
16
  if (variantName !== 'CircuitProveResponse') {
13
- throw new Error(`Expected variant name 'CircuitProveResponse' but got '${variantName}'`);
17
+ throw new BBApiException(`Expected variant name 'CircuitProveResponse' but got '${variantName}'`);
14
18
  }
15
19
  return toCircuitProveResponse(result);
16
20
  }
17
21
  circuitComputeVk(command) {
18
22
  const msgpackCommand = fromCircuitComputeVk(command);
19
23
  const [variantName, result] = msgpackCall(this.backend, [["CircuitComputeVk", msgpackCommand]]);
24
+ if (variantName === 'ErrorResponse') {
25
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
26
+ }
20
27
  if (variantName !== 'CircuitComputeVkResponse') {
21
- throw new Error(`Expected variant name 'CircuitComputeVkResponse' but got '${variantName}'`);
28
+ throw new BBApiException(`Expected variant name 'CircuitComputeVkResponse' but got '${variantName}'`);
22
29
  }
23
30
  return toCircuitComputeVkResponse(result);
24
31
  }
25
32
  circuitStats(command) {
26
33
  const msgpackCommand = fromCircuitStats(command);
27
34
  const [variantName, result] = msgpackCall(this.backend, [["CircuitStats", msgpackCommand]]);
35
+ if (variantName === 'ErrorResponse') {
36
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
37
+ }
28
38
  if (variantName !== 'CircuitInfoResponse') {
29
- throw new Error(`Expected variant name 'CircuitInfoResponse' but got '${variantName}'`);
39
+ throw new BBApiException(`Expected variant name 'CircuitInfoResponse' but got '${variantName}'`);
30
40
  }
31
41
  return toCircuitInfoResponse(result);
32
42
  }
33
43
  circuitVerify(command) {
34
44
  const msgpackCommand = fromCircuitVerify(command);
35
45
  const [variantName, result] = msgpackCall(this.backend, [["CircuitVerify", msgpackCommand]]);
46
+ if (variantName === 'ErrorResponse') {
47
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
48
+ }
36
49
  if (variantName !== 'CircuitVerifyResponse') {
37
- throw new Error(`Expected variant name 'CircuitVerifyResponse' but got '${variantName}'`);
50
+ throw new BBApiException(`Expected variant name 'CircuitVerifyResponse' but got '${variantName}'`);
38
51
  }
39
52
  return toCircuitVerifyResponse(result);
40
53
  }
41
- clientIvcComputeStandaloneVk(command) {
42
- const msgpackCommand = fromClientIvcComputeStandaloneVk(command);
43
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcComputeStandaloneVk", msgpackCommand]]);
44
- if (variantName !== 'ClientIvcComputeStandaloneVkResponse') {
45
- throw new Error(`Expected variant name 'ClientIvcComputeStandaloneVkResponse' but got '${variantName}'`);
54
+ chonkComputeStandaloneVk(command) {
55
+ const msgpackCommand = fromChonkComputeStandaloneVk(command);
56
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkComputeStandaloneVk", msgpackCommand]]);
57
+ if (variantName === 'ErrorResponse') {
58
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
46
59
  }
47
- return toClientIvcComputeStandaloneVkResponse(result);
60
+ if (variantName !== 'ChonkComputeStandaloneVkResponse') {
61
+ throw new BBApiException(`Expected variant name 'ChonkComputeStandaloneVkResponse' but got '${variantName}'`);
62
+ }
63
+ return toChonkComputeStandaloneVkResponse(result);
48
64
  }
49
- clientIvcComputeIvcVk(command) {
50
- const msgpackCommand = fromClientIvcComputeIvcVk(command);
51
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcComputeIvcVk", msgpackCommand]]);
52
- if (variantName !== 'ClientIvcComputeIvcVkResponse') {
53
- throw new Error(`Expected variant name 'ClientIvcComputeIvcVkResponse' but got '${variantName}'`);
65
+ chonkComputeIvcVk(command) {
66
+ const msgpackCommand = fromChonkComputeIvcVk(command);
67
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkComputeIvcVk", msgpackCommand]]);
68
+ if (variantName === 'ErrorResponse') {
69
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
70
+ }
71
+ if (variantName !== 'ChonkComputeIvcVkResponse') {
72
+ throw new BBApiException(`Expected variant name 'ChonkComputeIvcVkResponse' but got '${variantName}'`);
54
73
  }
55
- return toClientIvcComputeIvcVkResponse(result);
74
+ return toChonkComputeIvcVkResponse(result);
56
75
  }
57
- clientIvcStart(command) {
58
- const msgpackCommand = fromClientIvcStart(command);
59
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcStart", msgpackCommand]]);
60
- if (variantName !== 'ClientIvcStartResponse') {
61
- throw new Error(`Expected variant name 'ClientIvcStartResponse' but got '${variantName}'`);
76
+ chonkStart(command) {
77
+ const msgpackCommand = fromChonkStart(command);
78
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkStart", msgpackCommand]]);
79
+ if (variantName === 'ErrorResponse') {
80
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
62
81
  }
63
- return toClientIvcStartResponse(result);
82
+ if (variantName !== 'ChonkStartResponse') {
83
+ throw new BBApiException(`Expected variant name 'ChonkStartResponse' but got '${variantName}'`);
84
+ }
85
+ return toChonkStartResponse(result);
64
86
  }
65
- clientIvcLoad(command) {
66
- const msgpackCommand = fromClientIvcLoad(command);
67
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcLoad", msgpackCommand]]);
68
- if (variantName !== 'ClientIvcLoadResponse') {
69
- throw new Error(`Expected variant name 'ClientIvcLoadResponse' but got '${variantName}'`);
87
+ chonkLoad(command) {
88
+ const msgpackCommand = fromChonkLoad(command);
89
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkLoad", msgpackCommand]]);
90
+ if (variantName === 'ErrorResponse') {
91
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
92
+ }
93
+ if (variantName !== 'ChonkLoadResponse') {
94
+ throw new BBApiException(`Expected variant name 'ChonkLoadResponse' but got '${variantName}'`);
70
95
  }
71
- return toClientIvcLoadResponse(result);
96
+ return toChonkLoadResponse(result);
72
97
  }
73
- clientIvcAccumulate(command) {
74
- const msgpackCommand = fromClientIvcAccumulate(command);
75
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcAccumulate", msgpackCommand]]);
76
- if (variantName !== 'ClientIvcAccumulateResponse') {
77
- throw new Error(`Expected variant name 'ClientIvcAccumulateResponse' but got '${variantName}'`);
98
+ chonkAccumulate(command) {
99
+ const msgpackCommand = fromChonkAccumulate(command);
100
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkAccumulate", msgpackCommand]]);
101
+ if (variantName === 'ErrorResponse') {
102
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
78
103
  }
79
- return toClientIvcAccumulateResponse(result);
104
+ if (variantName !== 'ChonkAccumulateResponse') {
105
+ throw new BBApiException(`Expected variant name 'ChonkAccumulateResponse' but got '${variantName}'`);
106
+ }
107
+ return toChonkAccumulateResponse(result);
80
108
  }
81
- clientIvcProve(command) {
82
- const msgpackCommand = fromClientIvcProve(command);
83
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcProve", msgpackCommand]]);
84
- if (variantName !== 'ClientIvcProveResponse') {
85
- throw new Error(`Expected variant name 'ClientIvcProveResponse' but got '${variantName}'`);
109
+ chonkProve(command) {
110
+ const msgpackCommand = fromChonkProve(command);
111
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkProve", msgpackCommand]]);
112
+ if (variantName === 'ErrorResponse') {
113
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
114
+ }
115
+ if (variantName !== 'ChonkProveResponse') {
116
+ throw new BBApiException(`Expected variant name 'ChonkProveResponse' but got '${variantName}'`);
86
117
  }
87
- return toClientIvcProveResponse(result);
118
+ return toChonkProveResponse(result);
88
119
  }
89
- clientIvcVerify(command) {
90
- const msgpackCommand = fromClientIvcVerify(command);
91
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcVerify", msgpackCommand]]);
92
- if (variantName !== 'ClientIvcVerifyResponse') {
93
- throw new Error(`Expected variant name 'ClientIvcVerifyResponse' but got '${variantName}'`);
120
+ chonkVerify(command) {
121
+ const msgpackCommand = fromChonkVerify(command);
122
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkVerify", msgpackCommand]]);
123
+ if (variantName === 'ErrorResponse') {
124
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
94
125
  }
95
- return toClientIvcVerifyResponse(result);
126
+ if (variantName !== 'ChonkVerifyResponse') {
127
+ throw new BBApiException(`Expected variant name 'ChonkVerifyResponse' but got '${variantName}'`);
128
+ }
129
+ return toChonkVerifyResponse(result);
96
130
  }
97
131
  vkAsFields(command) {
98
132
  const msgpackCommand = fromVkAsFields(command);
99
133
  const [variantName, result] = msgpackCall(this.backend, [["VkAsFields", msgpackCommand]]);
134
+ if (variantName === 'ErrorResponse') {
135
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
136
+ }
100
137
  if (variantName !== 'VkAsFieldsResponse') {
101
- throw new Error(`Expected variant name 'VkAsFieldsResponse' but got '${variantName}'`);
138
+ throw new BBApiException(`Expected variant name 'VkAsFieldsResponse' but got '${variantName}'`);
102
139
  }
103
140
  return toVkAsFieldsResponse(result);
104
141
  }
105
142
  megaVkAsFields(command) {
106
143
  const msgpackCommand = fromMegaVkAsFields(command);
107
144
  const [variantName, result] = msgpackCall(this.backend, [["MegaVkAsFields", msgpackCommand]]);
145
+ if (variantName === 'ErrorResponse') {
146
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
147
+ }
108
148
  if (variantName !== 'MegaVkAsFieldsResponse') {
109
- throw new Error(`Expected variant name 'MegaVkAsFieldsResponse' but got '${variantName}'`);
149
+ throw new BBApiException(`Expected variant name 'MegaVkAsFieldsResponse' but got '${variantName}'`);
110
150
  }
111
151
  return toMegaVkAsFieldsResponse(result);
112
152
  }
113
153
  circuitWriteSolidityVerifier(command) {
114
154
  const msgpackCommand = fromCircuitWriteSolidityVerifier(command);
115
155
  const [variantName, result] = msgpackCall(this.backend, [["CircuitWriteSolidityVerifier", msgpackCommand]]);
156
+ if (variantName === 'ErrorResponse') {
157
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
158
+ }
116
159
  if (variantName !== 'CircuitWriteSolidityVerifierResponse') {
117
- throw new Error(`Expected variant name 'CircuitWriteSolidityVerifierResponse' but got '${variantName}'`);
160
+ throw new BBApiException(`Expected variant name 'CircuitWriteSolidityVerifierResponse' but got '${variantName}'`);
118
161
  }
119
162
  return toCircuitWriteSolidityVerifierResponse(result);
120
163
  }
121
- clientIvcCheckPrecomputedVk(command) {
122
- const msgpackCommand = fromClientIvcCheckPrecomputedVk(command);
123
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcCheckPrecomputedVk", msgpackCommand]]);
124
- if (variantName !== 'ClientIvcCheckPrecomputedVkResponse') {
125
- throw new Error(`Expected variant name 'ClientIvcCheckPrecomputedVkResponse' but got '${variantName}'`);
164
+ chonkCheckPrecomputedVk(command) {
165
+ const msgpackCommand = fromChonkCheckPrecomputedVk(command);
166
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkCheckPrecomputedVk", msgpackCommand]]);
167
+ if (variantName === 'ErrorResponse') {
168
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
126
169
  }
127
- return toClientIvcCheckPrecomputedVkResponse(result);
170
+ if (variantName !== 'ChonkCheckPrecomputedVkResponse') {
171
+ throw new BBApiException(`Expected variant name 'ChonkCheckPrecomputedVkResponse' but got '${variantName}'`);
172
+ }
173
+ return toChonkCheckPrecomputedVkResponse(result);
128
174
  }
129
- clientIvcStats(command) {
130
- const msgpackCommand = fromClientIvcStats(command);
131
- const [variantName, result] = msgpackCall(this.backend, [["ClientIvcStats", msgpackCommand]]);
132
- if (variantName !== 'ClientIvcStatsResponse') {
133
- throw new Error(`Expected variant name 'ClientIvcStatsResponse' but got '${variantName}'`);
175
+ chonkStats(command) {
176
+ const msgpackCommand = fromChonkStats(command);
177
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkStats", msgpackCommand]]);
178
+ if (variantName === 'ErrorResponse') {
179
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
180
+ }
181
+ if (variantName !== 'ChonkStatsResponse') {
182
+ throw new BBApiException(`Expected variant name 'ChonkStatsResponse' but got '${variantName}'`);
134
183
  }
135
- return toClientIvcStatsResponse(result);
184
+ return toChonkStatsResponse(result);
136
185
  }
137
186
  poseidon2Hash(command) {
138
187
  const msgpackCommand = fromPoseidon2Hash(command);
139
188
  const [variantName, result] = msgpackCall(this.backend, [["Poseidon2Hash", msgpackCommand]]);
189
+ if (variantName === 'ErrorResponse') {
190
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
191
+ }
140
192
  if (variantName !== 'Poseidon2HashResponse') {
141
- throw new Error(`Expected variant name 'Poseidon2HashResponse' but got '${variantName}'`);
193
+ throw new BBApiException(`Expected variant name 'Poseidon2HashResponse' but got '${variantName}'`);
142
194
  }
143
195
  return toPoseidon2HashResponse(result);
144
196
  }
145
197
  poseidon2Permutation(command) {
146
198
  const msgpackCommand = fromPoseidon2Permutation(command);
147
199
  const [variantName, result] = msgpackCall(this.backend, [["Poseidon2Permutation", msgpackCommand]]);
200
+ if (variantName === 'ErrorResponse') {
201
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
202
+ }
148
203
  if (variantName !== 'Poseidon2PermutationResponse') {
149
- throw new Error(`Expected variant name 'Poseidon2PermutationResponse' but got '${variantName}'`);
204
+ throw new BBApiException(`Expected variant name 'Poseidon2PermutationResponse' but got '${variantName}'`);
150
205
  }
151
206
  return toPoseidon2PermutationResponse(result);
152
207
  }
153
208
  poseidon2HashAccumulate(command) {
154
209
  const msgpackCommand = fromPoseidon2HashAccumulate(command);
155
210
  const [variantName, result] = msgpackCall(this.backend, [["Poseidon2HashAccumulate", msgpackCommand]]);
211
+ if (variantName === 'ErrorResponse') {
212
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
213
+ }
156
214
  if (variantName !== 'Poseidon2HashAccumulateResponse') {
157
- throw new Error(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
215
+ throw new BBApiException(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
158
216
  }
159
217
  return toPoseidon2HashAccumulateResponse(result);
160
218
  }
161
219
  pedersenCommit(command) {
162
220
  const msgpackCommand = fromPedersenCommit(command);
163
221
  const [variantName, result] = msgpackCall(this.backend, [["PedersenCommit", msgpackCommand]]);
222
+ if (variantName === 'ErrorResponse') {
223
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
224
+ }
164
225
  if (variantName !== 'PedersenCommitResponse') {
165
- throw new Error(`Expected variant name 'PedersenCommitResponse' but got '${variantName}'`);
226
+ throw new BBApiException(`Expected variant name 'PedersenCommitResponse' but got '${variantName}'`);
166
227
  }
167
228
  return toPedersenCommitResponse(result);
168
229
  }
169
230
  pedersenHash(command) {
170
231
  const msgpackCommand = fromPedersenHash(command);
171
232
  const [variantName, result] = msgpackCall(this.backend, [["PedersenHash", msgpackCommand]]);
233
+ if (variantName === 'ErrorResponse') {
234
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
235
+ }
172
236
  if (variantName !== 'PedersenHashResponse') {
173
- throw new Error(`Expected variant name 'PedersenHashResponse' but got '${variantName}'`);
237
+ throw new BBApiException(`Expected variant name 'PedersenHashResponse' but got '${variantName}'`);
174
238
  }
175
239
  return toPedersenHashResponse(result);
176
240
  }
177
241
  pedersenHashBuffer(command) {
178
242
  const msgpackCommand = fromPedersenHashBuffer(command);
179
243
  const [variantName, result] = msgpackCall(this.backend, [["PedersenHashBuffer", msgpackCommand]]);
244
+ if (variantName === 'ErrorResponse') {
245
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
246
+ }
180
247
  if (variantName !== 'PedersenHashBufferResponse') {
181
- throw new Error(`Expected variant name 'PedersenHashBufferResponse' but got '${variantName}'`);
248
+ throw new BBApiException(`Expected variant name 'PedersenHashBufferResponse' but got '${variantName}'`);
182
249
  }
183
250
  return toPedersenHashBufferResponse(result);
184
251
  }
185
252
  blake2s(command) {
186
253
  const msgpackCommand = fromBlake2s(command);
187
254
  const [variantName, result] = msgpackCall(this.backend, [["Blake2s", msgpackCommand]]);
255
+ if (variantName === 'ErrorResponse') {
256
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
257
+ }
188
258
  if (variantName !== 'Blake2sResponse') {
189
- throw new Error(`Expected variant name 'Blake2sResponse' but got '${variantName}'`);
259
+ throw new BBApiException(`Expected variant name 'Blake2sResponse' but got '${variantName}'`);
190
260
  }
191
261
  return toBlake2sResponse(result);
192
262
  }
193
263
  blake2sToField(command) {
194
264
  const msgpackCommand = fromBlake2sToField(command);
195
265
  const [variantName, result] = msgpackCall(this.backend, [["Blake2sToField", msgpackCommand]]);
266
+ if (variantName === 'ErrorResponse') {
267
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
268
+ }
196
269
  if (variantName !== 'Blake2sToFieldResponse') {
197
- throw new Error(`Expected variant name 'Blake2sToFieldResponse' but got '${variantName}'`);
270
+ throw new BBApiException(`Expected variant name 'Blake2sToFieldResponse' but got '${variantName}'`);
198
271
  }
199
272
  return toBlake2sToFieldResponse(result);
200
273
  }
201
274
  aesEncrypt(command) {
202
275
  const msgpackCommand = fromAesEncrypt(command);
203
276
  const [variantName, result] = msgpackCall(this.backend, [["AesEncrypt", msgpackCommand]]);
277
+ if (variantName === 'ErrorResponse') {
278
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
279
+ }
204
280
  if (variantName !== 'AesEncryptResponse') {
205
- throw new Error(`Expected variant name 'AesEncryptResponse' but got '${variantName}'`);
281
+ throw new BBApiException(`Expected variant name 'AesEncryptResponse' but got '${variantName}'`);
206
282
  }
207
283
  return toAesEncryptResponse(result);
208
284
  }
209
285
  aesDecrypt(command) {
210
286
  const msgpackCommand = fromAesDecrypt(command);
211
287
  const [variantName, result] = msgpackCall(this.backend, [["AesDecrypt", msgpackCommand]]);
288
+ if (variantName === 'ErrorResponse') {
289
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
290
+ }
212
291
  if (variantName !== 'AesDecryptResponse') {
213
- throw new Error(`Expected variant name 'AesDecryptResponse' but got '${variantName}'`);
292
+ throw new BBApiException(`Expected variant name 'AesDecryptResponse' but got '${variantName}'`);
214
293
  }
215
294
  return toAesDecryptResponse(result);
216
295
  }
217
296
  grumpkinMul(command) {
218
297
  const msgpackCommand = fromGrumpkinMul(command);
219
298
  const [variantName, result] = msgpackCall(this.backend, [["GrumpkinMul", msgpackCommand]]);
299
+ if (variantName === 'ErrorResponse') {
300
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
301
+ }
220
302
  if (variantName !== 'GrumpkinMulResponse') {
221
- throw new Error(`Expected variant name 'GrumpkinMulResponse' but got '${variantName}'`);
303
+ throw new BBApiException(`Expected variant name 'GrumpkinMulResponse' but got '${variantName}'`);
222
304
  }
223
305
  return toGrumpkinMulResponse(result);
224
306
  }
225
307
  grumpkinAdd(command) {
226
308
  const msgpackCommand = fromGrumpkinAdd(command);
227
309
  const [variantName, result] = msgpackCall(this.backend, [["GrumpkinAdd", msgpackCommand]]);
310
+ if (variantName === 'ErrorResponse') {
311
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
312
+ }
228
313
  if (variantName !== 'GrumpkinAddResponse') {
229
- throw new Error(`Expected variant name 'GrumpkinAddResponse' but got '${variantName}'`);
314
+ throw new BBApiException(`Expected variant name 'GrumpkinAddResponse' but got '${variantName}'`);
230
315
  }
231
316
  return toGrumpkinAddResponse(result);
232
317
  }
233
318
  grumpkinBatchMul(command) {
234
319
  const msgpackCommand = fromGrumpkinBatchMul(command);
235
320
  const [variantName, result] = msgpackCall(this.backend, [["GrumpkinBatchMul", msgpackCommand]]);
321
+ if (variantName === 'ErrorResponse') {
322
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
323
+ }
236
324
  if (variantName !== 'GrumpkinBatchMulResponse') {
237
- throw new Error(`Expected variant name 'GrumpkinBatchMulResponse' but got '${variantName}'`);
325
+ throw new BBApiException(`Expected variant name 'GrumpkinBatchMulResponse' but got '${variantName}'`);
238
326
  }
239
327
  return toGrumpkinBatchMulResponse(result);
240
328
  }
241
329
  grumpkinGetRandomFr(command) {
242
330
  const msgpackCommand = fromGrumpkinGetRandomFr(command);
243
331
  const [variantName, result] = msgpackCall(this.backend, [["GrumpkinGetRandomFr", msgpackCommand]]);
332
+ if (variantName === 'ErrorResponse') {
333
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
334
+ }
244
335
  if (variantName !== 'GrumpkinGetRandomFrResponse') {
245
- throw new Error(`Expected variant name 'GrumpkinGetRandomFrResponse' but got '${variantName}'`);
336
+ throw new BBApiException(`Expected variant name 'GrumpkinGetRandomFrResponse' but got '${variantName}'`);
246
337
  }
247
338
  return toGrumpkinGetRandomFrResponse(result);
248
339
  }
249
340
  grumpkinReduce512(command) {
250
341
  const msgpackCommand = fromGrumpkinReduce512(command);
251
342
  const [variantName, result] = msgpackCall(this.backend, [["GrumpkinReduce512", msgpackCommand]]);
343
+ if (variantName === 'ErrorResponse') {
344
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
345
+ }
252
346
  if (variantName !== 'GrumpkinReduce512Response') {
253
- throw new Error(`Expected variant name 'GrumpkinReduce512Response' but got '${variantName}'`);
347
+ throw new BBApiException(`Expected variant name 'GrumpkinReduce512Response' but got '${variantName}'`);
254
348
  }
255
349
  return toGrumpkinReduce512Response(result);
256
350
  }
257
351
  secp256k1Mul(command) {
258
352
  const msgpackCommand = fromSecp256k1Mul(command);
259
353
  const [variantName, result] = msgpackCall(this.backend, [["Secp256k1Mul", msgpackCommand]]);
354
+ if (variantName === 'ErrorResponse') {
355
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
356
+ }
260
357
  if (variantName !== 'Secp256k1MulResponse') {
261
- throw new Error(`Expected variant name 'Secp256k1MulResponse' but got '${variantName}'`);
358
+ throw new BBApiException(`Expected variant name 'Secp256k1MulResponse' but got '${variantName}'`);
262
359
  }
263
360
  return toSecp256k1MulResponse(result);
264
361
  }
265
362
  secp256k1GetRandomFr(command) {
266
363
  const msgpackCommand = fromSecp256k1GetRandomFr(command);
267
364
  const [variantName, result] = msgpackCall(this.backend, [["Secp256k1GetRandomFr", msgpackCommand]]);
365
+ if (variantName === 'ErrorResponse') {
366
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
367
+ }
268
368
  if (variantName !== 'Secp256k1GetRandomFrResponse') {
269
- throw new Error(`Expected variant name 'Secp256k1GetRandomFrResponse' but got '${variantName}'`);
369
+ throw new BBApiException(`Expected variant name 'Secp256k1GetRandomFrResponse' but got '${variantName}'`);
270
370
  }
271
371
  return toSecp256k1GetRandomFrResponse(result);
272
372
  }
273
373
  secp256k1Reduce512(command) {
274
374
  const msgpackCommand = fromSecp256k1Reduce512(command);
275
375
  const [variantName, result] = msgpackCall(this.backend, [["Secp256k1Reduce512", msgpackCommand]]);
376
+ if (variantName === 'ErrorResponse') {
377
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
378
+ }
276
379
  if (variantName !== 'Secp256k1Reduce512Response') {
277
- throw new Error(`Expected variant name 'Secp256k1Reduce512Response' but got '${variantName}'`);
380
+ throw new BBApiException(`Expected variant name 'Secp256k1Reduce512Response' but got '${variantName}'`);
278
381
  }
279
382
  return toSecp256k1Reduce512Response(result);
280
383
  }
281
384
  bn254FrSqrt(command) {
282
385
  const msgpackCommand = fromBn254FrSqrt(command);
283
386
  const [variantName, result] = msgpackCall(this.backend, [["Bn254FrSqrt", msgpackCommand]]);
387
+ if (variantName === 'ErrorResponse') {
388
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
389
+ }
284
390
  if (variantName !== 'Bn254FrSqrtResponse') {
285
- throw new Error(`Expected variant name 'Bn254FrSqrtResponse' but got '${variantName}'`);
391
+ throw new BBApiException(`Expected variant name 'Bn254FrSqrtResponse' but got '${variantName}'`);
286
392
  }
287
393
  return toBn254FrSqrtResponse(result);
288
394
  }
395
+ bn254FqSqrt(command) {
396
+ const msgpackCommand = fromBn254FqSqrt(command);
397
+ const [variantName, result] = msgpackCall(this.backend, [["Bn254FqSqrt", msgpackCommand]]);
398
+ if (variantName === 'ErrorResponse') {
399
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
400
+ }
401
+ if (variantName !== 'Bn254FqSqrtResponse') {
402
+ throw new BBApiException(`Expected variant name 'Bn254FqSqrtResponse' but got '${variantName}'`);
403
+ }
404
+ return toBn254FqSqrtResponse(result);
405
+ }
406
+ bn254G1Mul(command) {
407
+ const msgpackCommand = fromBn254G1Mul(command);
408
+ const [variantName, result] = msgpackCall(this.backend, [["Bn254G1Mul", msgpackCommand]]);
409
+ if (variantName === 'ErrorResponse') {
410
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
411
+ }
412
+ if (variantName !== 'Bn254G1MulResponse') {
413
+ throw new BBApiException(`Expected variant name 'Bn254G1MulResponse' but got '${variantName}'`);
414
+ }
415
+ return toBn254G1MulResponse(result);
416
+ }
417
+ bn254G2Mul(command) {
418
+ const msgpackCommand = fromBn254G2Mul(command);
419
+ const [variantName, result] = msgpackCall(this.backend, [["Bn254G2Mul", msgpackCommand]]);
420
+ if (variantName === 'ErrorResponse') {
421
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
422
+ }
423
+ if (variantName !== 'Bn254G2MulResponse') {
424
+ throw new BBApiException(`Expected variant name 'Bn254G2MulResponse' but got '${variantName}'`);
425
+ }
426
+ return toBn254G2MulResponse(result);
427
+ }
428
+ bn254G1IsOnCurve(command) {
429
+ const msgpackCommand = fromBn254G1IsOnCurve(command);
430
+ const [variantName, result] = msgpackCall(this.backend, [["Bn254G1IsOnCurve", msgpackCommand]]);
431
+ if (variantName === 'ErrorResponse') {
432
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
433
+ }
434
+ if (variantName !== 'Bn254G1IsOnCurveResponse') {
435
+ throw new BBApiException(`Expected variant name 'Bn254G1IsOnCurveResponse' but got '${variantName}'`);
436
+ }
437
+ return toBn254G1IsOnCurveResponse(result);
438
+ }
439
+ bn254G1FromCompressed(command) {
440
+ const msgpackCommand = fromBn254G1FromCompressed(command);
441
+ const [variantName, result] = msgpackCall(this.backend, [["Bn254G1FromCompressed", msgpackCommand]]);
442
+ if (variantName === 'ErrorResponse') {
443
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
444
+ }
445
+ if (variantName !== 'Bn254G1FromCompressedResponse') {
446
+ throw new BBApiException(`Expected variant name 'Bn254G1FromCompressedResponse' but got '${variantName}'`);
447
+ }
448
+ return toBn254G1FromCompressedResponse(result);
449
+ }
289
450
  schnorrComputePublicKey(command) {
290
451
  const msgpackCommand = fromSchnorrComputePublicKey(command);
291
452
  const [variantName, result] = msgpackCall(this.backend, [["SchnorrComputePublicKey", msgpackCommand]]);
453
+ if (variantName === 'ErrorResponse') {
454
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
455
+ }
292
456
  if (variantName !== 'SchnorrComputePublicKeyResponse') {
293
- throw new Error(`Expected variant name 'SchnorrComputePublicKeyResponse' but got '${variantName}'`);
457
+ throw new BBApiException(`Expected variant name 'SchnorrComputePublicKeyResponse' but got '${variantName}'`);
294
458
  }
295
459
  return toSchnorrComputePublicKeyResponse(result);
296
460
  }
297
461
  schnorrConstructSignature(command) {
298
462
  const msgpackCommand = fromSchnorrConstructSignature(command);
299
463
  const [variantName, result] = msgpackCall(this.backend, [["SchnorrConstructSignature", msgpackCommand]]);
464
+ if (variantName === 'ErrorResponse') {
465
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
466
+ }
300
467
  if (variantName !== 'SchnorrConstructSignatureResponse') {
301
- throw new Error(`Expected variant name 'SchnorrConstructSignatureResponse' but got '${variantName}'`);
468
+ throw new BBApiException(`Expected variant name 'SchnorrConstructSignatureResponse' but got '${variantName}'`);
302
469
  }
303
470
  return toSchnorrConstructSignatureResponse(result);
304
471
  }
305
472
  schnorrVerifySignature(command) {
306
473
  const msgpackCommand = fromSchnorrVerifySignature(command);
307
474
  const [variantName, result] = msgpackCall(this.backend, [["SchnorrVerifySignature", msgpackCommand]]);
475
+ if (variantName === 'ErrorResponse') {
476
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
477
+ }
308
478
  if (variantName !== 'SchnorrVerifySignatureResponse') {
309
- throw new Error(`Expected variant name 'SchnorrVerifySignatureResponse' but got '${variantName}'`);
479
+ throw new BBApiException(`Expected variant name 'SchnorrVerifySignatureResponse' but got '${variantName}'`);
310
480
  }
311
481
  return toSchnorrVerifySignatureResponse(result);
312
482
  }
313
483
  ecdsaSecp256k1ComputePublicKey(command) {
314
484
  const msgpackCommand = fromEcdsaSecp256k1ComputePublicKey(command);
315
485
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256k1ComputePublicKey", msgpackCommand]]);
486
+ if (variantName === 'ErrorResponse') {
487
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
488
+ }
316
489
  if (variantName !== 'EcdsaSecp256k1ComputePublicKeyResponse') {
317
- throw new Error(`Expected variant name 'EcdsaSecp256k1ComputePublicKeyResponse' but got '${variantName}'`);
490
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1ComputePublicKeyResponse' but got '${variantName}'`);
318
491
  }
319
492
  return toEcdsaSecp256k1ComputePublicKeyResponse(result);
320
493
  }
321
494
  ecdsaSecp256r1ComputePublicKey(command) {
322
495
  const msgpackCommand = fromEcdsaSecp256r1ComputePublicKey(command);
323
496
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256r1ComputePublicKey", msgpackCommand]]);
497
+ if (variantName === 'ErrorResponse') {
498
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
499
+ }
324
500
  if (variantName !== 'EcdsaSecp256r1ComputePublicKeyResponse') {
325
- throw new Error(`Expected variant name 'EcdsaSecp256r1ComputePublicKeyResponse' but got '${variantName}'`);
501
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1ComputePublicKeyResponse' but got '${variantName}'`);
326
502
  }
327
503
  return toEcdsaSecp256r1ComputePublicKeyResponse(result);
328
504
  }
329
505
  ecdsaSecp256k1ConstructSignature(command) {
330
506
  const msgpackCommand = fromEcdsaSecp256k1ConstructSignature(command);
331
507
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256k1ConstructSignature", msgpackCommand]]);
508
+ if (variantName === 'ErrorResponse') {
509
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
510
+ }
332
511
  if (variantName !== 'EcdsaSecp256k1ConstructSignatureResponse') {
333
- throw new Error(`Expected variant name 'EcdsaSecp256k1ConstructSignatureResponse' but got '${variantName}'`);
512
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1ConstructSignatureResponse' but got '${variantName}'`);
334
513
  }
335
514
  return toEcdsaSecp256k1ConstructSignatureResponse(result);
336
515
  }
337
516
  ecdsaSecp256r1ConstructSignature(command) {
338
517
  const msgpackCommand = fromEcdsaSecp256r1ConstructSignature(command);
339
518
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256r1ConstructSignature", msgpackCommand]]);
519
+ if (variantName === 'ErrorResponse') {
520
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
521
+ }
340
522
  if (variantName !== 'EcdsaSecp256r1ConstructSignatureResponse') {
341
- throw new Error(`Expected variant name 'EcdsaSecp256r1ConstructSignatureResponse' but got '${variantName}'`);
523
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1ConstructSignatureResponse' but got '${variantName}'`);
342
524
  }
343
525
  return toEcdsaSecp256r1ConstructSignatureResponse(result);
344
526
  }
345
527
  ecdsaSecp256k1RecoverPublicKey(command) {
346
528
  const msgpackCommand = fromEcdsaSecp256k1RecoverPublicKey(command);
347
529
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256k1RecoverPublicKey", msgpackCommand]]);
530
+ if (variantName === 'ErrorResponse') {
531
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
532
+ }
348
533
  if (variantName !== 'EcdsaSecp256k1RecoverPublicKeyResponse') {
349
- throw new Error(`Expected variant name 'EcdsaSecp256k1RecoverPublicKeyResponse' but got '${variantName}'`);
534
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1RecoverPublicKeyResponse' but got '${variantName}'`);
350
535
  }
351
536
  return toEcdsaSecp256k1RecoverPublicKeyResponse(result);
352
537
  }
353
538
  ecdsaSecp256r1RecoverPublicKey(command) {
354
539
  const msgpackCommand = fromEcdsaSecp256r1RecoverPublicKey(command);
355
540
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256r1RecoverPublicKey", msgpackCommand]]);
541
+ if (variantName === 'ErrorResponse') {
542
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
543
+ }
356
544
  if (variantName !== 'EcdsaSecp256r1RecoverPublicKeyResponse') {
357
- throw new Error(`Expected variant name 'EcdsaSecp256r1RecoverPublicKeyResponse' but got '${variantName}'`);
545
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1RecoverPublicKeyResponse' but got '${variantName}'`);
358
546
  }
359
547
  return toEcdsaSecp256r1RecoverPublicKeyResponse(result);
360
548
  }
361
549
  ecdsaSecp256k1VerifySignature(command) {
362
550
  const msgpackCommand = fromEcdsaSecp256k1VerifySignature(command);
363
551
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256k1VerifySignature", msgpackCommand]]);
552
+ if (variantName === 'ErrorResponse') {
553
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
554
+ }
364
555
  if (variantName !== 'EcdsaSecp256k1VerifySignatureResponse') {
365
- throw new Error(`Expected variant name 'EcdsaSecp256k1VerifySignatureResponse' but got '${variantName}'`);
556
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256k1VerifySignatureResponse' but got '${variantName}'`);
366
557
  }
367
558
  return toEcdsaSecp256k1VerifySignatureResponse(result);
368
559
  }
369
560
  ecdsaSecp256r1VerifySignature(command) {
370
561
  const msgpackCommand = fromEcdsaSecp256r1VerifySignature(command);
371
562
  const [variantName, result] = msgpackCall(this.backend, [["EcdsaSecp256r1VerifySignature", msgpackCommand]]);
563
+ if (variantName === 'ErrorResponse') {
564
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
565
+ }
372
566
  if (variantName !== 'EcdsaSecp256r1VerifySignatureResponse') {
373
- throw new Error(`Expected variant name 'EcdsaSecp256r1VerifySignatureResponse' but got '${variantName}'`);
567
+ throw new BBApiException(`Expected variant name 'EcdsaSecp256r1VerifySignatureResponse' but got '${variantName}'`);
374
568
  }
375
569
  return toEcdsaSecp256r1VerifySignatureResponse(result);
376
570
  }
377
571
  srsInitSrs(command) {
378
572
  const msgpackCommand = fromSrsInitSrs(command);
379
573
  const [variantName, result] = msgpackCall(this.backend, [["SrsInitSrs", msgpackCommand]]);
574
+ if (variantName === 'ErrorResponse') {
575
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
576
+ }
380
577
  if (variantName !== 'SrsInitSrsResponse') {
381
- throw new Error(`Expected variant name 'SrsInitSrsResponse' but got '${variantName}'`);
578
+ throw new BBApiException(`Expected variant name 'SrsInitSrsResponse' but got '${variantName}'`);
382
579
  }
383
580
  return toSrsInitSrsResponse(result);
384
581
  }
385
582
  srsInitGrumpkinSrs(command) {
386
583
  const msgpackCommand = fromSrsInitGrumpkinSrs(command);
387
584
  const [variantName, result] = msgpackCall(this.backend, [["SrsInitGrumpkinSrs", msgpackCommand]]);
585
+ if (variantName === 'ErrorResponse') {
586
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
587
+ }
388
588
  if (variantName !== 'SrsInitGrumpkinSrsResponse') {
389
- throw new Error(`Expected variant name 'SrsInitGrumpkinSrsResponse' but got '${variantName}'`);
589
+ throw new BBApiException(`Expected variant name 'SrsInitGrumpkinSrsResponse' but got '${variantName}'`);
390
590
  }
391
591
  return toSrsInitGrumpkinSrsResponse(result);
392
592
  }
393
593
  shutdown(command) {
394
594
  const msgpackCommand = fromShutdown(command);
395
595
  const [variantName, result] = msgpackCall(this.backend, [["Shutdown", msgpackCommand]]);
596
+ if (variantName === 'ErrorResponse') {
597
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
598
+ }
396
599
  if (variantName !== 'ShutdownResponse') {
397
- throw new Error(`Expected variant name 'ShutdownResponse' but got '${variantName}'`);
600
+ throw new BBApiException(`Expected variant name 'ShutdownResponse' but got '${variantName}'`);
398
601
  }
399
602
  return toShutdownResponse(result);
400
603
  }
@@ -403,4 +606,4 @@ export class SyncApi {
403
606
  this.backend.destroy();
404
607
  }
405
608
  }
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYmluZC9nZW5lcmF0ZWQvc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFHbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUE2K0UsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGdDQUFnQyxFQUFFLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLHlCQUF5QixFQUFFLGdDQUFnQyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUFFLGtDQUFrQyxFQUFFLGlDQUFpQyxFQUFFLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUFFLGtDQUFrQyxFQUFFLGlDQUFpQyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsc0NBQXNDLEVBQUUsNkJBQTZC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
609
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYmluZC9nZW5lcmF0ZWQvc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFHbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBa3RGLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGdDQUFnQyxFQUFFLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUFFLGtDQUFrQyxFQUFFLGlDQUFpQyxFQUFFLGtDQUFrQyxFQUFFLG9DQUFvQyxFQUFFLGtDQUFrQyxFQUFFLGlDQUFpQyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsd0JB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