Noble `secp256k1` birimini Google Closure Compiler için annotate edelim
KimlikDAO-bot opened this issue · comments
KimlikDAO bot commented
dApp'te ve js workerlarımızda secp256k1 kullanmamız gerekiyor. Örnek kullanımlar:
- dApp'te emaille imece iptalci eklediğimizde hayali private keyler yaratıp bu private keylerle revoke permit imzası atmamız gerekiyor (ve sonra bu private keyleri unutuyoruz)
- İleride dApp'te imza otoritesinden (bu otorite tek bir entity olmak zorunda değil; keza ileride 2 of 2 threshold signature olacak) gelen imzaları validate edebiliriz.
- HumanID bir kontrata yazılabileceği için, sepc256k1 imzası taşıması gerekiyor. HumanID oluşturan her birim secp256k1 imzasi atabilmeli. Bu şekilde on-chain TCKT elde edebiliyoruz.
- imza sunucu edevletten aldığı bilgileri ed25519'un yanısıra sec256k1 ile imzalayabilir
secp256k1 için noble crypto'nun implementation'unu kullanacağız. Biz hem type checking hem de optimization / minification için Google Closure Compiler kullanıyoruz. Google Closure Compiler javascript'in type annotated olmasını gerektiriyor.
signatures
branchinde crypto/secp256k1.js
dosyasının içeriğini ts'ten GCC annotated js'e geçirmemiz gerekiyor.
-
crypto/sha3.js
teslerini çalıştıralım:
yarn
make build/crypto/test/sha3.compiled-test.js
-
sha3.compiled-test.js
'e yeni bir test ekleyelim - GCC type sistemini şuradan bakalım https://github.com/google/closure-compiler/wiki/Types-in-the-Closure-Type-System
- Şu belgeye bakalım https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler
-
signatures
branchindecrypto/secp256k1.js
dosyasınıcrypto/noble25519.js
'i de örnek alarak js'e geçirelim.