mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-10 18:25:17 +00:00
v1.4.17 – Aurora (#169)
* v1.4.17 – Aurora * binaries, digests, and first signature * signer #3 verified * signer #8 verified * signer #14 verified * signer #12 verified * Add signatures (#170) * Add files via upload (#171) * signer #4 verified * signer #11 verified * signer #16 verified * signer #1 verified * remove binaries from repo, release ready --------- Co-authored-by: Agost Biro <5764438+agostbiro@users.noreply.github.com> Co-authored-by: Demipoet <161999657+demipoet@users.noreply.github.com>
This commit is contained in:
parent
6068cd8f26
commit
11ff272daf
209
client/cmd/crossMint.go
Normal file
209
client/cmd/crossMint.go
Normal file
@ -0,0 +1,209 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/cloudflare/circl/sign/ed448"
|
||||
libP2pCrypto "github.com/libp2p/go-libp2p/core/crypto"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
"go.uber.org/zap"
|
||||
"source.quilibrium.com/quilibrium/monorepo/node/config"
|
||||
"source.quilibrium.com/quilibrium/monorepo/node/keys"
|
||||
)
|
||||
|
||||
var crossMintCmd = &cobra.Command{
|
||||
Use: "cross-mint",
|
||||
Short: "Signs a payload from the Quilibrium bridge to mint tokens on Ethereum L1 and prints the result to stdout",
|
||||
Long: `Signs a payload from the Quilibrium bridge to mint tokens on Ethereum L1 and prints the result to stdout":
|
||||
|
||||
cross-mint <Payload>
|
||||
|
||||
Payload – the hex-encoded payload from the Quilibrium bridge with optional 0x-prefix, must be specified
|
||||
`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if len(args) != 1 {
|
||||
fmt.Printf("missing payload")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
_, err := os.Stat(configDirectory)
|
||||
if os.IsNotExist(err) {
|
||||
fmt.Printf("config directory doesn't exist: %s", configDirectory)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
config, err := config.LoadConfig(configDirectory, "")
|
||||
if err != nil {
|
||||
fmt.Printf("invalid config directory: %s", configDirectory)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
rawPeerKey, err := hex.DecodeString(config.P2P.PeerPrivKey)
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "cross mint"))
|
||||
}
|
||||
|
||||
peerKey, err := libP2pCrypto.UnmarshalEd448PrivateKey(rawPeerKey)
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "cross mint"))
|
||||
}
|
||||
|
||||
rawPeerKey, err = peerKey.Raw()
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "cross mint"))
|
||||
}
|
||||
|
||||
// TODO: support other key managers
|
||||
// Get the proving key
|
||||
// `config.Key.KeyStoreFile.Path` defaults to `.config/keys.yml`.
|
||||
// We do our best here to make sure the configuration value is taken into
|
||||
// account if it was changed.
|
||||
if !filepath.IsAbs(config.Key.KeyStoreFile.Path) {
|
||||
config.Key.KeyStoreFile.Path = filepath.Join(
|
||||
configDirectory,
|
||||
filepath.Base(config.Key.KeyStoreFile.Path),
|
||||
)
|
||||
}
|
||||
|
||||
logger, err := zap.NewProduction()
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "cross mint"))
|
||||
}
|
||||
|
||||
fileKeyManager := keys.NewFileKeyManager(config.Key, logger)
|
||||
provingKey, err := fileKeyManager.GetSigningKey(config.Engine.ProvingKeyId)
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "cross mint"))
|
||||
}
|
||||
// Sign the payload
|
||||
result, err := CrossMint(&CrossMintArgs{
|
||||
Payload: args[0],
|
||||
PeerKey: rawPeerKey,
|
||||
ProvingKey: provingKey.(ed448.PrivateKey),
|
||||
})
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "error cross minting"))
|
||||
}
|
||||
// Print the result
|
||||
jsonResult, err := json.Marshal(result)
|
||||
if err != nil {
|
||||
panic(errors.Wrap(err, "error marshaling result to json"))
|
||||
}
|
||||
fmt.Println(string(jsonResult))
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(crossMintCmd)
|
||||
}
|
||||
|
||||
// CrossMintArgs Arguments for the cross mint operation
|
||||
type CrossMintArgs struct {
|
||||
// Hex encoded payload with optional 0x prefix
|
||||
Payload string
|
||||
// The node's ed448 peer key
|
||||
PeerKey ed448.PrivateKey
|
||||
// The node's ed448 proving key
|
||||
ProvingKey ed448.PrivateKey
|
||||
}
|
||||
|
||||
// CrossMintResult Result of the cross mint operation
|
||||
type CrossMintResult struct {
|
||||
// Base64 encoded peer public key
|
||||
PeerPublicKey string `json:"peerPublicKey"`
|
||||
// Base64 encoded signature of the payload with the peer private key
|
||||
PeerSignature string `json:"peerSignature"`
|
||||
// Base64 encoded prover public key
|
||||
ProverPublicKey string `json:"proverPublicKey"`
|
||||
// Base64 encoded signature of the payload with the prover private key
|
||||
ProverSignature string `json:"proverSignature"`
|
||||
}
|
||||
|
||||
func CrossMint(args *CrossMintArgs) (*CrossMintResult, error) {
|
||||
rawPayload, err := decodeHexString(args.Payload)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "cross mint")
|
||||
}
|
||||
|
||||
peerSignature := ed448.Sign(args.PeerKey, rawPayload, "")
|
||||
peerPubKey, ok := args.PeerKey.Public().(ed448.PublicKey)
|
||||
if !ok {
|
||||
return nil, errors.Wrap(
|
||||
errors.New("error casting peer public key to ed448 public key"),
|
||||
"cross mint",
|
||||
)
|
||||
}
|
||||
|
||||
provingSignature := ed448.Sign(
|
||||
args.ProvingKey,
|
||||
rawPayload,
|
||||
"",
|
||||
)
|
||||
provingPubKey, ok := args.ProvingKey.Public().(ed448.PublicKey)
|
||||
if !ok {
|
||||
return nil, errors.Wrap(
|
||||
errors.New("error casting proving public key to ed448 public key"),
|
||||
"cross mint",
|
||||
)
|
||||
}
|
||||
return &CrossMintResult{
|
||||
PeerPublicKey: base64.StdEncoding.EncodeToString(peerPubKey),
|
||||
PeerSignature: base64.StdEncoding.EncodeToString(peerSignature),
|
||||
ProverPublicKey: base64.StdEncoding.EncodeToString(provingPubKey),
|
||||
ProverSignature: base64.StdEncoding.EncodeToString(provingSignature),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// VerifyCrossMint Verify a cross-mint message. Returns true if both signatures
|
||||
// verify with the given public keys.
|
||||
func VerifyCrossMint(payload string, result *CrossMintResult) (bool, error) {
|
||||
payloadBytes, err := decodeHexString(payload)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
peerPubKeyBytes, err := base64.StdEncoding.DecodeString(result.PeerPublicKey)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
peerPubKey := ed448.PublicKey(peerPubKeyBytes)
|
||||
peerSignature, err := base64.StdEncoding.DecodeString(result.PeerSignature)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
proverPubKeyBytes, err := base64.StdEncoding.DecodeString(
|
||||
result.ProverPublicKey,
|
||||
)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
proverPubKey := ed448.PublicKey(proverPubKeyBytes)
|
||||
proverSignature, err := base64.StdEncoding.DecodeString(
|
||||
result.ProverSignature,
|
||||
)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
peerSigOk := ed448.Verify(peerPubKey, payloadBytes, peerSignature, "")
|
||||
proverSigOk := ed448.Verify(proverPubKey, payloadBytes, proverSignature, "")
|
||||
return peerSigOk && proverSigOk, nil
|
||||
}
|
||||
|
||||
func decodeHexString(hexStr string) ([]byte, error) {
|
||||
// Check if the string starts with '0x' and remove it
|
||||
if strings.HasPrefix(hexStr, "0x") {
|
||||
hexStr = hexStr[2:]
|
||||
}
|
||||
// Decode the hex string into bytes
|
||||
data, err := hex.DecodeString(hexStr)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "error decoding hex string")
|
||||
}
|
||||
return data, nil
|
||||
}
|
102
client/cmd/crossMint_test.go
Normal file
102
client/cmd/crossMint_test.go
Normal file
@ -0,0 +1,102 @@
|
||||
package cmd_test
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"source.quilibrium.com/quilibrium/monorepo/client/cmd"
|
||||
)
|
||||
|
||||
var peerPrivKeyStr = "b14b843edf61a58870d3f96fe7dc8c6d0479af10aa16c45b102ddae75b278e8ef302edca36c71c1b4beb60e88088826c4da71ab0b5bf60cc92fc35078fa499f8a4accd51776ecc1fb520fdb20408133366077dadf4ff8a337fb42a19ff846e3609516a3f61c92ea4b9c2298a64b8bfae3780"
|
||||
var provingPrivKeyStr = "690a5f08a2b3a0b787a8301c5fded376f7a070f5d89f66bf537d67fa1ed71a2b22ce166733b7d73ccf10a20ef0f04f163aae13883ff8270f93fed723c513e24e7f93d317b3257731887411bf820e169a0180c0cbf625efa67ff54cc22f1d97a2bd3f721705eeb4c2bf022f793954a798f700"
|
||||
|
||||
func TestCrossMintRoundtrip(t *testing.T) {
|
||||
peerPrivKey, err := hex.DecodeString(peerPrivKeyStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
provingPrivKey, err := hex.DecodeString(provingPrivKeyStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
payloadBytes := make([]byte, 32)
|
||||
n, err := rand.Read(payloadBytes)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if n != 32 {
|
||||
t.Fatal("not enough bytes read")
|
||||
}
|
||||
payload := hex.EncodeToString(payloadBytes)
|
||||
args := &cmd.CrossMintArgs{
|
||||
Payload: payload,
|
||||
PeerKey: peerPrivKey,
|
||||
ProvingKey: provingPrivKey,
|
||||
}
|
||||
result, err := cmd.CrossMint(args)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
verified, err := cmd.VerifyCrossMint(payload, result)
|
||||
assert.True(t, verified, "cross mint verification failed")
|
||||
// Switch the public keys to induce failure
|
||||
tmp := result.PeerPublicKey
|
||||
result.PeerPublicKey = result.ProverPublicKey
|
||||
result.ProverPublicKey = tmp
|
||||
verified, err = cmd.VerifyCrossMint(payload, result)
|
||||
assert.False(t, verified, "cross mint verification should have failed")
|
||||
}
|
||||
|
||||
func TestCrossMint0xHex(t *testing.T) {
|
||||
peerPrivKey, err := hex.DecodeString(peerPrivKeyStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
provingPrivKey, err := hex.DecodeString(provingPrivKeyStr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
payload := "0x1234"
|
||||
args := &cmd.CrossMintArgs{
|
||||
Payload: payload,
|
||||
PeerKey: peerPrivKey,
|
||||
ProvingKey: provingPrivKey,
|
||||
}
|
||||
result, err := cmd.CrossMint(args)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
verified, err := cmd.VerifyCrossMint(payload, result)
|
||||
assert.True(t, verified, "cross mint verification failed")
|
||||
}
|
||||
|
||||
func TestCrossMintFixture(t *testing.T) {
|
||||
// Generated by running the `cross-mint` on the config of a newly started node with payload "1234"
|
||||
rawJson := `{
|
||||
"peerPublicKey": "LLP/9tYlqIsV8AgTkyIpK9zjN+OfXNmYMDhmDeEagCMAhjfpPPWDyWDq9w6uMl9hGyDKYB10EV0A",
|
||||
"peerSignature": "2ybumA9Vu5rnr5nYPcjehGo/PK6uNl4iVa0WXkEGms5ChqPFgOJX6Z5eng8U6VSHy85zbeZBukiANE3j2EBxrk4TAf4Z+5uuNMCQ6DasKpkgsxuIOGWKhOcBal2CDicinuMqafU3YOrXH9cck/OkjywA",
|
||||
"proverPublicKey": "CAk3inpisW2Bpcar/z5/3dwjRSgFMRbhYhtCWdQThZZqDvOWFGgoMXLyKHw3B4+yEsmYIVaQZ/iA",
|
||||
"proverSignature": "NZb7D2xNbCLlYGMUN1BiwBJL9Z6LbdRiMT1FpltBVpRNuoUNmncN++TWgJD6ngIv+VxEnWB0fhcAfAvrIlwNL0z8Ppur8mGMwedzJIm3pB22nAjUTDvNOvvczZWNbPZPyXcWco8SIC/aVaNmvsg//SgA"
|
||||
}`
|
||||
// load RawJson into a CrossMintResult
|
||||
result := &cmd.CrossMintResult{}
|
||||
err := json.Unmarshal([]byte(rawJson), result)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ok, err := cmd.VerifyCrossMint("1234", result)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.True(t, ok, "cross mint verification failed")
|
||||
|
||||
bad, err := cmd.VerifyCrossMint("2234", result)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.False(t, bad, "cross mint verification succeeded when it should have failed")
|
||||
}
|
@ -2,9 +2,41 @@ module source.quilibrium.com/quilibrium/monorepo/client
|
||||
|
||||
go 1.20
|
||||
|
||||
replace github.com/libp2p/go-libp2p => ../go-libp2p
|
||||
|
||||
replace source.quilibrium.com/quilibrium/monorepo/node => ../node
|
||||
|
||||
replace source.quilibrium.com/quilibrium/monorepo/nekryptology => ../nekryptology
|
||||
|
||||
require github.com/stretchr/testify v1.8.4
|
||||
|
||||
require (
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/shopspring/decimal v1.4.0 // indirect
|
||||
github.com/spf13/cobra v1.8.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
filippo.io/edwards25519 v1.0.0-rc.1 // indirect
|
||||
github.com/btcsuite/btcd v0.21.0-beta.0.20201114000516-e9c7a5ac6401 // indirect
|
||||
github.com/bwesterb/go-ristretto v1.2.3 // indirect
|
||||
github.com/consensys/gnark-crypto v0.5.3 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
|
||||
github.com/minio/sha256-simd v1.0.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
go.uber.org/multierr v1.11.0 // indirect
|
||||
golang.org/x/crypto v0.18.0 // indirect
|
||||
golang.org/x/sys v0.17.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
source.quilibrium.com/quilibrium/monorepo/nekryptology v0.0.0-00010101000000-000000000000 // indirect
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/cloudflare/circl v1.3.8
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/libp2p/go-libp2p v0.33.2
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/shopspring/decimal v1.4.0
|
||||
github.com/spf13/cobra v1.8.0
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
go.uber.org/zap v1.27.0
|
||||
google.golang.org/protobuf v1.32.0 // indirect
|
||||
source.quilibrium.com/quilibrium/monorepo/node v1.14.17
|
||||
)
|
||||
|
110
client/go.sum
110
client/go.sum
@ -1,12 +1,122 @@
|
||||
filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU=
|
||||
filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
|
||||
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
|
||||
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
|
||||
github.com/btcsuite/btcd v0.21.0-beta.0.20201114000516-e9c7a5ac6401 h1:0tjUthKCaF8zwF9Qg7lfnep0xdo4n8WiFUfQPaMHX6g=
|
||||
github.com/btcsuite/btcd v0.21.0-beta.0.20201114000516-e9c7a5ac6401/go.mod h1:Sv4JPQ3/M+teHz9Bo5jBpkNcP0x6r7rdihlNL/7tTAs=
|
||||
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
|
||||
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
|
||||
github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts=
|
||||
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
|
||||
github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
|
||||
github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=
|
||||
github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
|
||||
github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
|
||||
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
|
||||
github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
|
||||
github.com/bwesterb/go-ristretto v1.2.3 h1:1w53tCkGhCQ5djbat3+MH0BAQ5Kfgbt56UZQ/JMzngw=
|
||||
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
|
||||
github.com/cloudflare/circl v1.3.8 h1:j+V8jJt09PoeMFIu2uh5JUyEaIHTXVOHslFoLNAKqwI=
|
||||
github.com/cloudflare/circl v1.3.8/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
|
||||
github.com/consensys/bavard v0.1.8-0.20210915155054-088da2f7f54a/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI=
|
||||
github.com/consensys/gnark-crypto v0.5.3 h1:4xLFGZR3NWEH2zy+YzvzHicpToQR8FXFbfLNvpGB+rE=
|
||||
github.com/consensys/gnark-crypto v0.5.3/go.mod h1:hOdPlWQV1gDLp7faZVeg8Y0iEPFaOUnCc4XeCCk96p0=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y=
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs=
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
|
||||
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s=
|
||||
github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
|
||||
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
|
||||
github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
|
||||
github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
|
||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
|
||||
github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8=
|
||||
github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8=
|
||||
github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM=
|
||||
github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8=
|
||||
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
|
||||
github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE=
|
||||
github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
|
||||
github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10=
|
||||
github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g=
|
||||
github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg=
|
||||
github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U=
|
||||
github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
|
||||
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
|
||||
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
|
||||
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
|
||||
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
|
||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
|
||||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
|
||||
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
|
||||
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
|
||||
golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
|
||||
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
|
||||
golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq8U5YUhetc9cBWKS1TQ=
|
||||
golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
|
||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
|
||||
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI=
|
||||
rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA=
|
||||
|
@ -1,12 +1,9 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"source.quilibrium.com/quilibrium/monorepo/client/cmd"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Quilibrium RPC Client – Simulation Mode")
|
||||
cmd.Execute()
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ func GetMinimumVersion() []byte {
|
||||
}
|
||||
|
||||
func GetVersion() []byte {
|
||||
return []byte{0x01, 0x04, 0x10}
|
||||
return []byte{0x01, 0x04, 0x11}
|
||||
}
|
||||
|
||||
func GetVersionString() string {
|
||||
|
16
node/main.go
16
node/main.go
@ -592,13 +592,13 @@ func printLogo() {
|
||||
fmt.Println(" ########### ########## &###########")
|
||||
fmt.Println(" ########### ############## ###########")
|
||||
fmt.Println(" ########### ############## ##########&")
|
||||
fmt.Println(" ########## ############## ##########")
|
||||
fmt.Println("%########## ########## ##########")
|
||||
fmt.Println("########## ##########")
|
||||
fmt.Println("########## &#########")
|
||||
fmt.Println("########## ####### ####### ##########")
|
||||
fmt.Println("%######### &######################### ##########")
|
||||
fmt.Println(" ########## ##############% ############## &##########")
|
||||
fmt.Println(" ' ' ############## ##########")
|
||||
fmt.Println("' ' ########## ##########")
|
||||
fmt.Println("' ' ##########")
|
||||
fmt.Println("' ' &#########")
|
||||
fmt.Println("' ' ####### ####### ##########")
|
||||
fmt.Println("' ' &######################### ##########")
|
||||
fmt.Println(" ' ' ##############% ############## &##########")
|
||||
fmt.Println(" ' ' &############## ############### ##########")
|
||||
fmt.Println(" ' ' ############### ##############% ###########")
|
||||
fmt.Println(" ' '. ########## ############### ########")
|
||||
@ -616,5 +616,5 @@ func printLogo() {
|
||||
|
||||
func printVersion() {
|
||||
fmt.Println(" ")
|
||||
fmt.Println(" Quilibrium Node - v" + config.GetVersionString() + " – Sunset")
|
||||
fmt.Println(" Quilibrium Node - v" + config.GetVersionString() + " – Aurora")
|
||||
}
|
||||
|
1
node/node-1.4.17-darwin-arm64.dgst
Normal file
1
node/node-1.4.17-darwin-arm64.dgst
Normal file
@ -0,0 +1 @@
|
||||
SHA3-256(node-1.4.17-darwin-arm64.bin)= c9eee4d66e1a98a9d63dbe54cbe043e1d7fc4014bcf7e78e46d56b33b4b7c9da
|
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.1
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.1
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.11
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.11
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.12
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.12
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.13
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.13
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.14
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.14
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.15
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.15
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.16
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.16
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.3
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.3
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.4
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.4
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.6
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.6
Normal file
Binary file not shown.
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.8
Normal file
BIN
node/node-1.4.17-darwin-arm64.dgst.sig.8
Normal file
Binary file not shown.
1
node/node-1.4.17-linux-amd64.dgst
Normal file
1
node/node-1.4.17-linux-amd64.dgst
Normal file
@ -0,0 +1 @@
|
||||
SHA3-256(node-1.4.17-linux-amd64.bin)= 06a2ab7dc4e5f2b6ea48e4f056774b5bfadbf4bb261058279ef1f4e6982e1a8f
|
BIN
node/node-1.4.17-linux-amd64.dgst.sig.1
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.1
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.11
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.11
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.12
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.12
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.13
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.13
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.14
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.14
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.15
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.15
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.16
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.16
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.3
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.3
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.4
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.4
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.6
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.6
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-amd64.dgst.sig.8
Normal file
BIN
node/node-1.4.17-linux-amd64.dgst.sig.8
Normal file
Binary file not shown.
1
node/node-1.4.17-linux-arm64.dgst
Normal file
1
node/node-1.4.17-linux-arm64.dgst
Normal file
@ -0,0 +1 @@
|
||||
SHA3-256(node-1.4.17-linux-arm64.bin)= ea90251db54105278ef4085d5bd71912b8aa9dae0b79a2c0bfdfdf33180513d3
|
BIN
node/node-1.4.17-linux-arm64.dgst.sig.1
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.1
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.11
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.11
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.12
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.12
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.13
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.13
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.14
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.14
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.15
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.15
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.16
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.16
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.3
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.3
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.4
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.4
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.6
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.6
Normal file
Binary file not shown.
BIN
node/node-1.4.17-linux-arm64.dgst.sig.8
Normal file
BIN
node/node-1.4.17-linux-arm64.dgst.sig.8
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user