mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 04:57:08 +00:00
* feat: add docs and CI workflow for publishing to onsonr.dev * (refactor): Move hway,motr executables to their own repos * feat: simplify devnet and testnet configurations * refactor: update import path for didcrypto package * docs(networks): Add README with project overview, architecture, and community links * refactor: Move network configurations to deploy directory * build: update golang version to 1.23 * refactor: move logger interface to appropriate package * refactor: Move devnet configuration to networks/devnet * chore: improve release process with date variable * (chore): Move Crypto Library * refactor: improve code structure and readability in DID module * feat: integrate Trunk CI checks * ci: optimize CI workflow by removing redundant build jobs --------- Co-authored-by: Darp Alakun <i@prad.nu>
34 lines
1.0 KiB
Go
Executable File
34 lines
1.0 KiB
Go
Executable File
// package dklsv1 provides a wrapper around the [DKLs18](https://eprint.iacr.org/2018/499.pdf) sign and dkg and provides
|
|
// serialization, serialization, and versioning for the serialized data.
|
|
package dklsv1
|
|
|
|
import (
|
|
"github.com/onsonr/sonr/crypto/core/protocol"
|
|
)
|
|
|
|
// Basic protocol interface implementation that calls the next step func in a pre-defined list
|
|
type protoStepper struct {
|
|
steps []func(input *protocol.Message) (*protocol.Message, error)
|
|
step int
|
|
}
|
|
|
|
// Next runs the next step in the protocol and reports errors or increments the step index
|
|
func (p *protoStepper) Next(input *protocol.Message) (*protocol.Message, error) {
|
|
if p.complete() {
|
|
return nil, protocol.ErrProtocolFinished
|
|
}
|
|
|
|
// Run the current protocol step and report any errors
|
|
output, err := p.steps[p.step](input)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// Increment the step index and report success
|
|
p.step++
|
|
return output, nil
|
|
}
|
|
|
|
// Reports true if the step index exceeds the number of steps
|
|
func (p *protoStepper) complete() bool { return p.step >= len(p.steps) /**/ }
|