Commit Graph

330 Commits

Author SHA1 Message Date
Divma b30983fc9a
Windows bindings for rust (#259) 2023-04-05 13:33:37 -05:00
Stefan Bratanov b022f30c24
[Java binding] Improve prerequisites instructions (#278) 2023-04-04 10:10:55 -05:00
Divma 34f4fa1609
Delegate blst build to crate in preparation for windows bindings (#274) 2023-03-31 10:56:56 -05:00
Matthew Keil feb4037de5
Add eslint to node bindings (#269)
* add eslint and run for TS files

* add eslint and run for JS/TS

* remove eslint file comments

* add endOfLine: "auto" for windows

* fix yarn command to remove excess output

* update eslint versions
2023-03-31 17:46:54 +09:00
Justin Traglia 6b9b636c1b
Update Go bindings example (#273) 2023-03-31 13:38:35 +09:00
Matthew Keil 966e40d70e
Add repo link to npm page (#272) 2023-03-30 17:03:01 -05:00
Justin Traglia 60d8402e19
Fix some nodejs nits (#271) 2023-03-30 16:34:55 -05:00
Matthew Keil e9c9c912f6
Format node bindings with clang-format (#268) 2023-03-30 11:20:25 -05:00
Matthew Keil dd5ec7ba7e
Add bundle to publish command (#262) 2023-03-30 11:05:22 -05:00
Matthew Keil ac4b945429
Clean-up node error messages (#266) 2023-03-30 09:17:57 -05:00
Matthew Keil ed4e795c18
return undefined if JS error is thrown (#267) 2023-03-30 08:54:34 -05:00
Matthew Keil e83ec0374c
.gitignore node deps (#265) 2023-03-30 08:25:24 -05:00
Justin Traglia f942864765
Replace CKZGRet with error in go bindings (#252) 2023-03-29 19:33:15 -05:00
Matthew Keil a7f4890a7e
Remove tsc build step and export raw .js file and .d.ts from node bindings (#260) 2023-03-29 19:32:06 -05:00
George Kadianakis 656d0c74a7
nodejs: Remove the fclose() error handling (#261) 2023-03-29 08:51:50 -05:00
Justin Traglia 2913b5ab31
Fix rust benchmarks (#258)
* Fix rust benchmarks

* Use iter_batched_ref for true benchmarks

* Remove unused import

* Update BatchSize & add throughput measurements

* Remove "cargo clean" from CI checks

* Run release tests after minimal tests
2023-03-29 15:59:52 +09:00
Matthew Keil db8f42507a
close file descriptor (#248) 2023-03-28 15:23:17 -05:00
Justin Traglia c5920c4ef4
Multi-platform nodejs bindings (#242) 2023-03-28 11:01:07 -05:00
Divma f384175810
Reproducible rust bindings (#243)
* modify directory structure to isolate the generated bindings

* add a lib.rs file

* move deref impls to the extension file

* remove unused types from generated bindings

* cleanup new lines to reduce diff noise

* reorder definitions to reduce diff noise

* move sync and send impls to the extension file

* generate bindings

* blacklist used bindings; create snapshots dir to ensure freshness in the future

* fix typo. Ty @pawanjay176

* run cargo build after merge

* custom impl for KZGCommitment and KZGProof

* final touches
2023-03-27 23:47:24 +09:00
Stefan Bratanov 88924c8aa7
[Java] Avoid unnecessary array copying in tests (#247) 2023-03-24 10:53:46 -05:00
Justin Traglia c448e9bfcc
Fix minor memleak in Go bindings (#241)
* Fix minor memleak in Go bindings

* Move fclose back to after nil check

* Move it to correct spot, ugh
2023-03-24 22:50:15 +09:00
andri lim 9a93c75e23
Add support for nimble package (#232) 2023-03-24 08:02:38 -05:00
Justin Traglia 861371629e
Rename CKzgRet to CKZGRet for consistency (#240) 2023-03-22 19:38:14 +02:00
Justin Traglia ee218752c0
Add example for go bindings (#238)
* Add example for go bindings

* Remove clean cmd & do go mod tidy
2023-03-22 12:28:42 +02:00
Matthew Keil da5a644781
Update node README (#228) 2023-03-21 09:53:27 -05:00
Stefan Bratanov fd3500fe7b
Rename ByteArrayTuple to ProofAndY (#233) 2023-03-21 08:16:53 -05:00
George Kadianakis cc10ef024d
Some misc minor codebase improvements (#229) 2023-03-20 21:31:53 -05:00
andri lim bf99ed5b91
Nim: better handling of trusted setup (#231) 2023-03-20 21:30:50 -05:00
Ruben Buniatyan 0b6791bbce
Revise NuGet packaging (#221) 2023-03-17 10:59:32 -05:00
Justin Traglia 7e755d7280
Fix a mistake in python bindings makefile (#218) 2023-03-17 11:56:37 +02:00
Justin Traglia 5e34bc0232
Fix some nits with nodejs (#219) 2023-03-17 11:55:24 +02:00
Justin Traglia b3291f9bf1
Speed up rust build just a little (#220) 2023-03-17 11:52:07 +02:00
Justin Traglia a6be00db3d
Link readme in C# project file (#217) 2023-03-16 14:33:46 -05:00
Stefan Bratanov 0fb17c2063
[Java bindings] Improve javadoc + update dependencies (#213) 2023-03-15 11:20:04 -05:00
Justin Traglia 5580f355ae
Add ref test count checks for all bindings (#211) 2023-03-15 16:39:19 +02:00
Pawan Dhananjay 549739fcb3
Add an into_inner method for Bytes48 (#206) 2023-03-13 13:38:02 +02:00
Stefan Bratanov 9b91f3b832
Small cleanups (#202) 2023-03-10 11:32:13 -06:00
Justin Traglia da83e45e9c
Cleanup some rust tests (#195) 2023-03-10 11:42:17 +02:00
Justin Traglia 1883b79233
Update the java bindings header (#201) 2023-03-10 11:40:23 +02:00
andri lim edb1274b70
Reduce boilerplate in nim tests (#197) 2023-03-09 14:15:05 -06:00
George Kadianakis ef82131be6
Fix rust benches to work with the new compute API (#194) 2023-03-09 10:30:46 -06:00
Matthew Keil 2642595e39
Reorganize/Clean-Up Node Bindings (#189)
* refactor(node-bindings): create src/lib/test folders

* feat(node-bindings): update bundle/publish commands

* refactor(node-bindings): remove unused files and dependencies

* refactor(node-bindings): move fixtures to __fixtures__

* fix(node-bindings): revert format of fixture json file

* fix(node-bindings): prettierignore and gitignore

* feat(node-bindings): add bindings package

* fix(node-bindings): fix test setup path

* fix(node-bindings): remove post-build copy action in bindings.gyp

* fix(node-bindings): package.json keys

* Update contributors

---------

Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-03-09 18:21:28 +02:00
Matthew Keil 5ebf750a1e
Update Compute*KZGProof in node bindings (#188)
* feat(node-bindings): update Compute*KZGProof

* ComputationProof -> ProofResult

---------

Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-03-09 16:40:57 +02:00
Matthew Keil 87a3e4148d
Move setup handle to C in node bindings (#177)
* feat(node-bindings): move KzgSettings to c

* fix(node-bindings): typo in comment

* fix(node-bindings): remove unnecessary SetInstanceData

* feat(node-bindings): use C for setting instance data

* docs(node-bindings): fix comment on struct

* refactor(node-bindings): revert export order to minimize diff
2023-03-09 16:00:15 +02:00
George Kadianakis 599ae2fe21
Update Compute*KZGProof in rust bindings (#183)
* Update Compute*KZGProof in rust bindings

* Remove the boxing from the blobs

and implement get_blobs() a bit less promiscuously

* Improve pattern matching style

* Run `cargo fmt`

* Remove a println

* No need to clone commitments
2023-03-09 13:00:17 +02:00
andri lim ad6e258694
Improve nim bindings conciseness (#191) 2023-03-08 22:05:25 -06:00
andri lim fc11addf50
Allow invalid length inputs in nim tests (#190) 2023-03-08 22:04:23 -06:00
Justin Traglia ff4e99579d
Update Compute*KZGProof in c# bindings (#187) 2023-03-08 16:13:48 -06:00
Justin Traglia 6f3751d97b
Update Compute*KZGProof in java bindings (#182) 2023-03-08 15:31:20 -06:00
Justin Traglia db2fa8dcdb
Run each reference test individually in Go (#180)
* Run each reference test individually in Go

* Fix other merge conflict issues
2023-03-08 16:14:39 +02:00
Justin Traglia 9e72862198
Allow invalid length inputs in go tests (#175)
* Allow invalid length inputs in go tests

* Revert output type to original
2023-03-08 15:30:09 +02:00
andri lim e8ed621dc8
Add Nim bindings (#176) 2023-03-08 07:04:30 -06:00
Justin Traglia b71746df74
Update Compute*KZGProof in go bindings (#181) 2023-03-08 13:45:54 +02:00
Suphanat Chunhapanya ccf1a4fdf0
Change on compute_[blob_]kzg_proof function signatures (#174) 2023-03-07 13:51:43 -06:00
Matthew Keil ecc668bbe7
Node binding argument and return type updates (#170) 2023-03-06 19:28:30 -06:00
Alexey 7c0bd867d5
Add C# wrapper & YAML tests (#46) 2023-03-06 15:46:00 -06:00
Justin Traglia 410eed4db6
Update java bindings to support YAML ref tests (#166)
* Update java bindings to support YAML ref tests

* Clean things up a little

* Fix some more nits

* Swap comparision to be expected/actual

* Add missing input length checks

* Move test formats to new directory
2023-03-06 15:58:49 +02:00
Justin Traglia 54ab82c93b
Update nodejs bindings to support YAML ref tests (#167)
* Update nodejs bindings to support YAML ref tests

* Remove c-kzg from deps

* Fix test checks

* Add return statements in error checks

* Fix uint8array comparisons

* Revert test_dir to original value
2023-03-06 12:08:59 +02:00
Justin Traglia aaaacf7432
Update go bindings to support YAML ref tests (#163)
* Update go bindings to support YAML reference tests

* Remove refs to inputValue/claimedValue

* Do not panic if given different length lists
2023-03-06 12:04:29 +02:00
Justin Traglia 572507ce77
Allow invalid length inputs in rust tests (#171)
* Allow bad input values in rust tests

* Clean up a little

* Re-enable feature checks & consolidate

* Use more pattern matching

* Consolidate imports

* Split some long lines into shorter ones

* Clean up test loops

* Simplify get_output() for some funcs
2023-03-06 11:52:36 +02:00
Justin Traglia 8ade71a137
Update python bindings to support YAML ref tests (#161) 2023-03-04 11:24:03 -07:00
Justin Traglia 3e5f562f05
Update rust bindings to support YAML ref tests (#164) 2023-03-03 16:01:56 -07:00
g11tech 021674111a
Update the node bindings version to the latest published (#162) 2023-03-01 12:39:37 +02:00
Justin Traglia 6b2ee20102
Add bindings to readme (#154)
* Add bindings section to readme

* Reorganize a little bit

* Remove extra blank lines
2023-02-23 17:53:08 +02:00
Justin Traglia 1d3558cec2
Update rust bindings (#143)
* Update rust bindings

* Remove old test vectors

* Add #[must_use] in C_KZG_RET to avoid future missing retval checks

* Replace expect with unwrap

* Fix generate_random_commitment()

* Turn some camels to snakes

* Capitalize some consts

* Improve a bench loop

* Kill a useless extern

---------

Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-02-22 18:33:15 +02:00
George Kadianakis d41a3b0060
Merge pull request #147 from jtraglia/update-nodejs-bindings
Update nodejs bindings
2023-02-22 18:12:47 +02:00
Justin Traglia b34cc3ce1e Add missing exception pending checks 2023-02-22 09:39:16 -06:00
Justin Traglia 0e78319a44 Free allocations in success case 2023-02-22 09:36:32 -06:00
Justin Traglia 4a77aeff26 Add explicit type check 2023-02-22 09:10:09 -06:00
Stefan Bratanov 2e55967455
[Java binding] Validation of loadTrustedSetup parameters (#152) 2023-02-22 08:56:49 -06:00
Justin Traglia d5bd326877 Update test names 2023-02-21 14:22:44 -06:00
Justin Traglia 0e6e23de65
Update csharp bindings (#146) 2023-02-21 09:57:25 -06:00
Justin Traglia 03b439ef2f
Update java bindings (#144) 2023-02-20 14:57:27 -06:00
Justin Traglia 9be420c0f1
Merge branch 'ethereum:main' into update-nodejs-bindings 2023-02-20 10:22:50 -06:00
Justin Traglia a231d5354b
Update go bindings (#142)
* Update go bindings

* Fix some nits
2023-02-20 16:01:31 +00:00
Justin Traglia daa5f79fe3
Update python bindings (#145) 2023-02-20 16:00:13 +00:00
Dmitrii Shmatko f87eee57d3
Fix getting SEGFAULT in Java with incorrect parameters (#148)
* Java bindings: Fix SEGFAULT on incorrect parameters/wrong file

* Prettify allocate KZGSettings
2023-02-20 12:02:34 +00:00
Justin Traglia 21b3139dc8 Update nodejs bindings 2023-02-18 15:49:52 -06:00
Stefan Bratanov 9a764de619
Add spotless to the java bindings (#136)
* Add spotless to the java bindings

* Use check task which includes test + all verification
2023-02-16 11:26:26 +00:00
Fabio Di Fabio 8c3dc2df41
Add method to load trusted setup from a resource (#135)
* Add method to load trusted setup from a resource
* Do not try to reuse the same temp dir
* Fix test, loading the correct trusted setup for the preset
2023-02-15 12:18:43 -06:00
Justin Traglia 8aa78231f2
Check UInt8Array lengths (#126) 2023-02-14 15:11:10 -06:00
Justin Traglia 1493f2bf2f
Fix rust bindings benchmarks (#132) 2023-02-13 07:14:09 +00:00
Justin Traglia 5c1128e380
Add profiling (#124)
* Start to add profiling

* Add include flags for macos

* Add profiling funcs for the other funcs

* Add profiling readme

* Move sentence

* Add warning section

* Make run_profiler phony

* Delete extra empty lines

* Add line about box size

* No more dropped nodes/edges

* Remove function focus

* Add sha256 benchmark

* Benchmark sha256 with different sizes

* Clean things up a little
2023-02-10 20:33:32 +00:00
Justin Traglia 5a3e294beb
Update go get instructions (#125) 2023-02-10 08:01:30 +00:00
Stefan Bratanov 5cfbc34135
Add java benchmarking for `compute_kzg_proof` (#122) 2023-02-08 17:36:40 +00:00
Justin Traglia dc28b03f9d
Cleanup the Makefile (#119)
* Cleanup the Makefile some

* Fix compiler error

* Fix compiler errors in tests

* Fix problems on Linux

* Add test_c_kzg_4844_cov to gitignore

* Add back closing brace for cpp

* Split clean rule into two lines

* Not echo commands when running them

* Allow other compilers to be used

* Update comment

* Only allow clang, actually
2023-02-08 17:35:33 +00:00
Justin Traglia fd029a7d00
Fix python bindings on macOS (#117)
* Fix python bindings on macOS

* Update workflow

* Remove unnecessary Makefile vars

* Add src dir to include dirs

* Fix phony
2023-02-07 22:13:54 +00:00
Daniel Coffman c6fa137cd4
Verify blobs count matches commitments count (#113) 2023-02-01 20:56:03 +00:00
Justin Traglia e4f280f17f
Add compute_kzg_proof to java bindings (#94) 2023-01-27 15:16:41 +00:00
Justin Traglia 9076280cd2
Add compute_kzg_proof to nodejs bindings (#92) 2023-01-27 15:15:17 +00:00
Justin Traglia 60ead4ee49
Add compute_kzg_proof to rust bindings (#91) 2023-01-27 15:14:13 +00:00
Justin Traglia 3ec2e9cdc2
Update go get command in instructions (#90) 2023-01-27 10:30:01 +00:00
Justin Traglia 877e6a43d3
Move go.mod & go.sum to repo root (#88)
* Move go.mod & go.sum to repo root

* Add note to README
2023-01-26 22:42:56 +00:00
Justin Traglia 71dd9574d6
Add go bindings (#77)
* Add go bindings

* Use Bytes32 type

* Update blst package

* Add binding for compute_kzg_proof

* Use bytes-only input (will fail)

* Fix go bindings tests

* Use better blobs for benchmarks

* Move rand* funcs to helpers & add comment

* Add headers check
2023-01-26 17:04:24 +00:00
Justin Traglia 03b90ef63f
Use Bytes48 for commitments/proofs (#86)
* Start to use bytes48 type

* Update java bindings

* Update variable names

* Update csharp bindings

* Update node.js bindings

* Update python bindings

* Fix mistake in python bindings

* Add new functions

* Fix nit in java bindings

* Update variable names in java bindings

* Compare to point at infinity

* Update bytes_to_bls_field doc

* Add todo

* Do key validation

* Remove bytes_to_g1

* Fix bug & add remark

* Fix memcmp mistake

* Fix nit in nodejs bindings

* Fix another nit

* Update nodejs parameter names

* Remove to_proof() and to_commitment()

* Fix bug
2023-01-26 14:53:30 +00:00
Justin Traglia 0a18868475
Upgrade blst & remove sha256 patch (#85) 2023-01-25 20:07:15 +00:00
Justin Traglia 8907fbcfe2
Expose `compute_kzg_proof` (#80)
* Expose computeKzgProof

* Revert changes to bytes_to/from_bls_field

* Update comments

* Revert changes to bytes_from_bls_field

* Revert change to parameter name

* Add compute_kzg_proof to readme

* Refactor in support of asn's PR

* Clean up a little

* Fix param name doc

* Introduce Bytes32 type

* Update bindings

* Replaces bytes with b to match spec
2023-01-24 18:23:42 +00:00
Simonas Kalpokas 4c115844e2
Add newline in nodejs trusted setup transformation (#78) 2023-01-20 16:37:38 +00:00
Justin Traglia ac3c829727
Minor rust bindings cleanup (#75)
* Minor rust bindings cleanup

* Use g2_bytes variable
2023-01-18 21:45:44 +00:00
Justin Traglia 9fbe40a5eb
Add length check to verify_aggregate_kzg_proof in rust bindings (#74)
* Add length check to verify_aggregate_kzg_proof in rust bindings

* Generate incorrect blob later

* Remove leftover parenthesis

* Move result var after check
2023-01-18 21:44:33 +00:00