From fc68bcf3cb2430f35410a269688d836732acc56a Mon Sep 17 00:00:00 2001 From: mleku Date: Thu, 17 Jul 2025 13:18:55 +0100 Subject: [PATCH] moved everything into pkg/ --- .gitignore | 4 +- crypto/ec/base58/util_test.go | 9 - database/fetch-event-by-serial.go | 39 ---- orly.png => docs/orly.png | Bin encoders/json/examples_test.go | 218 ------------------ encoders/json/string.go | 36 --- main.go | 27 ++- {app => pkg/app}/config/config.go | 13 +- {app => pkg/app}/main.go | 13 +- {app => pkg/app}/relay/accept-event.go | 4 +- {app => pkg/app}/relay/accept-req.go | 4 +- {app => pkg/app}/relay/addEvent.go | 13 +- {app => pkg/app}/relay/auth.go | 6 +- {app => pkg/app}/relay/handleRelayinfo.go | 11 +- {app => pkg/app}/relay/handleWebsocket.go | 3 +- {app => pkg/app}/relay/helpers/helpers.go | 0 {app => pkg/app}/relay/options/options.go | 2 +- {app => pkg/app}/relay/publish/publisher.go | 4 +- {app => pkg/app}/relay/server-impl.go | 10 +- {app => pkg/app}/relay/server-publish.go | 23 +- {app => pkg/app}/relay/server.go | 21 +- {app => pkg/app}/relay/testrelay.go | 13 +- {app => pkg/app}/resources.go | 5 +- {cmd => pkg/cmd}/lerproxy/LICENSE | 0 {cmd => pkg/cmd}/lerproxy/README.md | 0 {cmd => pkg/cmd}/lerproxy/buf/bufpool.go | 0 {cmd => pkg/cmd}/lerproxy/hsts/proxy.go | 0 {cmd => pkg/cmd}/lerproxy/main.go | 17 +- {cmd => pkg/cmd}/lerproxy/reverse/proxy.go | 5 +- .../cmd}/lerproxy/tcpkeepalive/listener.go | 5 +- {cmd => pkg/cmd}/lerproxy/timeout/conn.go | 2 +- {cmd => pkg/cmd}/lerproxy/util/u.go | 0 {cmd => pkg/cmd}/nauth/main.go | 15 +- {cmd => pkg/cmd}/nurl/main.go | 21 +- {cmd => pkg/cmd}/vainstr/LICENSE | 0 {cmd => pkg/cmd}/vainstr/README.md | 0 {cmd => pkg/cmd}/vainstr/main.go | 29 ++- {crypto => pkg/crypto}/ec/LICENSE | 0 {crypto => pkg/crypto}/ec/README.md | 0 {crypto => pkg/crypto}/ec/base58/LICENSE | 0 {crypto => pkg/crypto}/ec/base58/README.md | 0 {crypto => pkg/crypto}/ec/base58/alphabet.go | 0 {crypto => pkg/crypto}/ec/base58/base58.go | 0 .../crypto}/ec/base58/base58_test.go | 2 +- .../crypto}/ec/base58/base58bench_test.go | 2 +- .../crypto}/ec/base58/base58check.go | 2 +- .../crypto}/ec/base58/base58check_test.go | 2 +- .../crypto}/ec/base58/cov_report.sh | 0 {crypto => pkg/crypto}/ec/base58/doc.go | 0 .../crypto}/ec/base58/example_test.go | 10 +- .../crypto}/ec/base58/genalphabet.go | 0 {crypto => pkg/crypto}/ec/bech32/README.md | 0 {crypto => pkg/crypto}/ec/bech32/bech32.go | 0 .../crypto}/ec/bech32/bech32_test.go | 2 +- {crypto => pkg/crypto}/ec/bech32/doc.go | 0 {crypto => pkg/crypto}/ec/bech32/error.go | 0 .../crypto}/ec/bech32/example_test.go | 0 {crypto => pkg/crypto}/ec/bech32/version.go | 0 {crypto => pkg/crypto}/ec/bench_test.go | 5 +- {crypto => pkg/crypto}/ec/btcec.go | 12 +- {crypto => pkg/crypto}/ec/btcec_test.go | 0 .../ec/chaincfg/deployment_time_frame.go | 2 +- {crypto => pkg/crypto}/ec/chaincfg/genesis.go | 18 +- {crypto => pkg/crypto}/ec/chaincfg/params.go | 10 +- {crypto => pkg/crypto}/ec/chainhash/README.md | 0 {crypto => pkg/crypto}/ec/chainhash/doc.go | 0 {crypto => pkg/crypto}/ec/chainhash/hash.go | 5 +- .../crypto}/ec/chainhash/hash_test.go | 0 .../crypto}/ec/chainhash/hashfuncs.go | 2 +- .../crypto}/ec/chainhash/hashfuncs_test.go | 0 {crypto => pkg/crypto}/ec/ciphering.go | 2 +- {crypto => pkg/crypto}/ec/ciphering_test.go | 0 {crypto => pkg/crypto}/ec/curve.go | 20 +- {crypto => pkg/crypto}/ec/doc.go | 0 {crypto => pkg/crypto}/ec/ecdsa/README.md | 0 {crypto => pkg/crypto}/ec/ecdsa/bench_test.go | 25 +- {crypto => pkg/crypto}/ec/ecdsa/doc.go | 0 {crypto => pkg/crypto}/ec/ecdsa/error.go | 0 {crypto => pkg/crypto}/ec/ecdsa/error_test.go | 0 .../crypto}/ec/ecdsa/example_test.go | 0 {crypto => pkg/crypto}/ec/ecdsa/signature.go | 98 ++++---- .../crypto}/ec/ecdsa/signature_test.go | 21 +- {crypto => pkg/crypto}/ec/ecdsa/util_test.go | 2 +- {crypto => pkg/crypto}/ec/error.go | 2 +- {crypto => pkg/crypto}/ec/field.go | 2 +- {crypto => pkg/crypto}/ec/field_test.go | 5 +- {crypto => pkg/crypto}/ec/fuzz_test.go | 3 +- {crypto => pkg/crypto}/ec/modnscalar.go | 6 +- .../crypto}/ec/musig2/bench_test.go | 9 +- {crypto => pkg/crypto}/ec/musig2/context.go | 8 +- .../ec/musig2/data/key_agg_vectors.json | 0 .../ec/musig2/data/key_sort_vectors.json | 0 .../ec/musig2/data/nonce_agg_vectors.json | 0 .../ec/musig2/data/nonce_gen_vectors.json | 0 .../ec/musig2/data/sig_agg_vectors.json | 0 .../ec/musig2/data/sign_verify_vectors.json | 0 .../crypto}/ec/musig2/data/tweak_vectors.json | 0 {crypto => pkg/crypto}/ec/musig2/doc.go | 0 {crypto => pkg/crypto}/ec/musig2/keys.go | 10 +- {crypto => pkg/crypto}/ec/musig2/keys_test.go | 11 +- .../crypto}/ec/musig2/musig2_test.go | 9 +- {crypto => pkg/crypto}/ec/musig2/nonces.go | 10 +- .../crypto}/ec/musig2/nonces_test.go | 9 +- {crypto => pkg/crypto}/ec/musig2/sign.go | 32 +-- {crypto => pkg/crypto}/ec/musig2/sign_test.go | 9 +- {crypto => pkg/crypto}/ec/pubkey.go | 2 +- {crypto => pkg/crypto}/ec/pubkey_test.go | 0 .../crypto}/ec/schnorr/bench_test.go | 11 +- .../crypto}/ec/schnorr/bip/bip-0340.mediawiki | 0 .../ec/schnorr/bip/bip340/reference.py | 0 .../ec/schnorr/bip/bip340/test-vectors.csv | 0 .../ec/schnorr/bip/bip340/test-vectors.py | 0 {crypto => pkg/crypto}/ec/schnorr/error.go | 0 {crypto => pkg/crypto}/ec/schnorr/pubkey.go | 4 +- .../crypto}/ec/schnorr/schnorrdoc.go | 0 .../crypto}/ec/schnorr/schnorrerror_test.go | 0 .../crypto}/ec/schnorr/signature.go | 12 +- .../crypto}/ec/schnorr/signature_test.go | 11 +- {crypto => pkg/crypto}/ec/sec2-v2.pdf | Bin {crypto => pkg/crypto}/ec/seckey.go | 2 +- {crypto => pkg/crypto}/ec/secp256k1/LICENSE | 0 {crypto => pkg/crypto}/ec/secp256k1/README.md | 0 .../crypto}/ec/secp256k1/bench_test.go | 0 {crypto => pkg/crypto}/ec/secp256k1/curve.go | 3 +- .../crypto}/ec/secp256k1/curve_test.go | 2 +- {crypto => pkg/crypto}/ec/secp256k1/doc.go | 0 {crypto => pkg/crypto}/ec/secp256k1/ecdh.go | 0 .../crypto}/ec/secp256k1/ecdh_test.go | 0 .../crypto}/ec/secp256k1/ellipticadaptor.go | 0 .../secp256k1/ellipticadaptor_bench_test.go | 0 .../ec/secp256k1/ellipticadaptor_test.go | 2 +- {crypto => pkg/crypto}/ec/secp256k1/error.go | 0 .../crypto}/ec/secp256k1/error_test.go | 0 .../crypto}/ec/secp256k1/example_test.go | 19 +- {crypto => pkg/crypto}/ec/secp256k1/field.go | 2 +- .../crypto}/ec/secp256k1/field_bench_test.go | 0 .../crypto}/ec/secp256k1/field_test.go | 5 +- .../crypto}/ec/secp256k1/loadprecomputed.go | 0 .../crypto}/ec/secp256k1/modnscalar.go | 3 +- .../ec/secp256k1/modnscalar_bench_test.go | 0 .../crypto}/ec/secp256k1/modnscalar_test.go | 5 +- {crypto => pkg/crypto}/ec/secp256k1/nonce.go | 2 +- .../crypto}/ec/secp256k1/nonce_test.go | 5 +- .../crypto}/ec/secp256k1/precomps.go | 0 .../crypto}/ec/secp256k1/precomps/doc.go | 0 .../ec/secp256k1/precomps/genprecomps.go | 20 +- {crypto => pkg/crypto}/ec/secp256k1/pubkey.go | 0 .../crypto}/ec/secp256k1/pubkey_test.go | 0 .../crypto}/ec/secp256k1/rawbytepoints.bin | Bin {crypto => pkg/crypto}/ec/secp256k1/seckey.go | 2 +- .../crypto}/ec/secp256k1/seckey_bench_test.go | 0 .../crypto}/ec/secp256k1/seckey_test.go | 0 .../crypto}/ec/secp256k1/util_test.go | 2 +- {crypto => pkg/crypto}/ec/taproot/taproot.go | 20 +- .../btcec => pkg/crypto/ec}/util_test.go | 2 +- {crypto => pkg/crypto}/ec/wire/blockheader.go | 2 +- {crypto => pkg/crypto}/ec/wire/msgblock.go | 0 {crypto => pkg/crypto}/ec/wire/msgtx.go | 2 +- {crypto => pkg/crypto}/ec/wire/wire.go | 0 {crypto => pkg/crypto}/encryption/README.md | 0 {crypto => pkg/crypto}/encryption/doc.go | 0 {crypto => pkg/crypto}/encryption/nip4.go | 9 +- {crypto => pkg/crypto}/encryption/nip44.go | 11 +- .../crypto}/encryption/nip44_test.go | 9 +- {crypto => pkg/crypto}/keys/keys.go | 9 +- {crypto => pkg/crypto}/p256k/README.md | 2 +- {crypto => pkg/crypto}/p256k/btcec.go | 2 +- {crypto => pkg/crypto}/p256k/btcec/btcec.go | 54 ++--- .../crypto}/p256k/btcec/btcec_test.go | 11 +- .../crypto/p256k/btcec}/util_test.go | 2 +- {crypto => pkg/crypto}/p256k/doc.go | 0 {crypto => pkg/crypto}/p256k/p256k.go | 20 +- {crypto => pkg/crypto}/p256k/p256k_test.go | 23 +- {crypto => pkg/crypto}/p256k/secp256k1.go | 40 ++-- .../crypto}/p256k/secp256k1_test.go | 11 +- {crypto => pkg/crypto}/p256k/util_test.go | 2 +- {crypto => pkg/crypto}/sha256/LICENSE | 0 {crypto => pkg/crypto}/sha256/README.md | 0 {crypto => pkg/crypto}/sha256/cpuid_other.go | 0 {crypto => pkg/crypto}/sha256/doc.go | 0 {crypto => pkg/crypto}/sha256/sha256.go | 0 {crypto => pkg/crypto}/sha256/sha256_test.go | 2 +- .../sha256/sha256blockAvx512_amd64.asm | 0 .../crypto}/sha256/sha256blockAvx512_amd64.go | 0 .../crypto}/sha256/sha256blockAvx512_amd64.s | 0 .../sha256/sha256blockAvx512_amd64_test.go | 0 .../crypto}/sha256/sha256block_amd64.go | 0 .../crypto}/sha256/sha256block_amd64.s | 0 .../crypto}/sha256/sha256block_amd64_test.go | 0 .../crypto}/sha256/sha256block_arm64.go | 0 .../crypto}/sha256/sha256block_arm64.s | 0 .../crypto}/sha256/sha256block_other.go | 0 .../crypto}/sha256/test-architectures.sh | 0 {database => pkg/database}/database.go | 14 +- {database => pkg/database}/delete-event.go | 12 +- .../database}/fetch-event-by-serial_test.go | 14 +- .../database}/get-fullidpubkey-by-serial.go | 10 +- .../database}/get-indexes-for-event.go | 8 +- .../database}/get-indexes-for-event_test.go | 44 ++-- .../database}/get-indexes-from-filter.go | 56 ++--- .../database}/get-indexes-from-filter_test.go | 100 ++++---- .../database}/get-serial-by-id.go | 10 +- .../database}/get-serial-by-id_test.go | 8 +- .../database}/get-serials-by-range.go | 4 +- .../database}/get-serials-by-range_test.go | 20 +- {database => pkg/database}/indexes/keys.go | 108 +++++---- .../database}/indexes/keys_test.go | 6 +- .../indexes/types/endianness_test.go | 0 .../database}/indexes/types/fullid.go | 5 +- .../database}/indexes/types/fullid_test.go | 4 +- .../database}/indexes/types/identhash.go | 0 .../database}/indexes/types/identhash_test.go | 4 +- .../database}/indexes/types/idhash.go | 10 +- .../database}/indexes/types/idhash_test.go | 6 +- .../database}/indexes/types/letter.go | 2 +- .../database}/indexes/types/letter_test.go | 4 +- .../database}/indexes/types/pubhash.go | 11 +- .../database}/indexes/types/pubhash_test.go | 8 +- .../database}/indexes/types/timestamp.go | 4 +- .../database}/indexes/types/timestamp_test.go | 4 +- .../database}/indexes/types/uint16.go | 0 .../database}/indexes/types/uint16_test.go | 4 +- .../database}/indexes/types/uint24.go | 2 +- .../database}/indexes/types/uint24_test.go | 4 +- .../database}/indexes/types/uint32.go | 0 .../database}/indexes/types/uint32_test.go | 4 +- .../database}/indexes/types/uint40.go | 2 +- .../database}/indexes/types/uint40_test.go | 4 +- .../database}/indexes/types/uint64.go | 0 .../database}/indexes/types/uint64_test.go | 4 +- .../database}/indexes/types/word.go | 4 +- .../database}/indexes/types/word_test.go | 4 +- {database => pkg/database}/logger.go | 4 +- ...-events-multiple-param-replaceable_test.go | 21 +- {database => pkg/database}/query-events.go | 20 +- .../database}/query-events_test.go | 24 +- .../database}/query-for-authors-tags_test.go | 16 +- .../database}/query-for-created-at_test.go | 14 +- {database => pkg/database}/query-for-ids.go | 12 +- .../database}/query-for-ids_test.go | 22 +- .../query-for-kinds-authors-tags_test.go | 18 +- .../database}/query-for-kinds-authors_test.go | 18 +- .../database}/query-for-kinds-tags_test.go | 18 +- .../database}/query-for-kinds_test.go | 16 +- .../database}/query-for-serials.go | 10 +- .../database}/query-for-serials_test.go | 20 +- .../database}/query-for-tags_test.go | 16 +- {database => pkg/database}/save-event.go | 28 +-- {database => pkg/database}/save-event_test.go | 20 +- .../encoders}/bech32encoding/doc.go | 0 .../encoders}/bech32encoding/keys.go | 43 ++-- .../encoders}/bech32encoding/keys_test.go | 16 +- .../encoders}/bech32encoding/nip19.go | 23 +- .../encoders}/bech32encoding/nip19_test.go | 13 +- .../bech32encoding/pointers/pointers.go | 4 +- .../encoders}/bech32encoding/tlv/tlv.go | 0 {encoders => pkg/encoders}/codecbuf/README.md | 0 {encoders => pkg/encoders}/codecbuf/pool.go | 0 .../encoders}/codecbuf/pool_test.go | 0 .../envelopes/authenvelope/authenvelope.go | 19 +- .../authenvelope/authenvelope_test.go | 9 +- .../closedenvelope/closedenvelope.go | 15 +- .../closedenvelope/closedenvelope_test.go | 7 +- .../envelopes/closeenvelope/closeenvelope.go | 9 +- .../closeenvelope/closeenvelope_test.go | 7 +- .../envelopes/countenvelope/countenvelope.go | 20 +- .../countenvelope/countenvelope_test.go | 9 +- {encoders => pkg/encoders}/envelopes/doc.go | 0 .../envelopes/eoseenvelope/eoseenvelope.go | 9 +- .../eoseenvelope/eoseenvelope_test.go | 7 +- .../envelopes/eventenvelope/eventenvelope.go | 13 +- .../eventenvelope/eventenvelope_test.go | 11 +- .../encoders}/envelopes/identify.go | 0 .../encoders}/envelopes/messages/messages.go | 0 .../noticeenvelope/noticeenvelope.go | 13 +- .../noticeenvelope/noticeenvelope_test.go | 7 +- .../envelopes/okenvelope/okenvelope.go | 31 ++- .../envelopes/okenvelope/okenvelope_test.go | 9 +- .../encoders}/envelopes/process.go | 0 .../envelopes/reqenvelope/reqenvelope.go | 13 +- .../envelopes/reqenvelope/reqenvelope_test.go | 9 +- {encoders => pkg/encoders}/event/binary.go | 15 +- .../encoders}/event/binary_test.go | 7 +- {encoders => pkg/encoders}/event/canonical.go | 45 ++-- .../encoders}/event/canonical_test.go | 0 .../event/codectester/divider/main.go | 11 +- .../event/codectester/divider/readme.md | 0 .../encoders}/event/codectester/doc.go | 0 {encoders => pkg/encoders}/event/event.go | 41 ++-- .../encoders}/event/event_test.go | 7 +- .../encoders}/event/examples/eventcache.go | 0 {encoders => pkg/encoders}/event/json.go | 54 ++--- .../encoders}/event/json_whitespace_test.go | 9 +- .../encoders}/event/signatures.go | 11 +- {encoders => pkg/encoders}/event/sort.go | 0 {encoders => pkg/encoders}/eventid/eventid.go | 11 +- .../encoders}/eventidserial/eventidserial.go | 0 {encoders => pkg/encoders}/filter/filter.go | 61 +++-- .../encoders}/filter/filter_test.go | 2 +- {encoders => pkg/encoders}/filter/simple.go | 27 ++- {encoders => pkg/encoders}/filters/filters.go | 8 +- .../encoders}/filters/filters_test.go | 2 +- {encoders => pkg/encoders}/hex/aliases.go | 5 +- {encoders => pkg/encoders}/ints/base10k.txt | 0 {encoders => pkg/encoders}/ints/gen/pregen.go | 2 +- {encoders => pkg/encoders}/ints/ints.go | 5 +- {encoders => pkg/encoders}/ints/ints_test.go | 2 +- {encoders => pkg/encoders}/json/array.go | 5 +- {encoders => pkg/encoders}/json/base64.go | 7 +- {encoders => pkg/encoders}/json/bech32.go | 11 +- {encoders => pkg/encoders}/json/bool.go | 0 {encoders => pkg/encoders}/json/hex.go | 8 +- {encoders => pkg/encoders}/json/keyvalue.go | 5 +- {encoders => pkg/encoders}/json/signed.go | 5 +- {encoders => pkg/encoders}/json/unsigned.go | 5 +- {encoders => pkg/encoders}/kind/kind.go | 5 +- {encoders => pkg/encoders}/kind/kind_test.go | 2 +- {encoders => pkg/encoders}/kinds/kinds.go | 10 +- .../encoders}/kinds/kinds_test.go | 5 +- {encoders => pkg/encoders}/reason/reason.go | 0 .../encoders}/subscription/subscriptionid.go | 11 +- .../subscription/subscriptionid_test.go | 2 +- {encoders => pkg/encoders}/tag/atag/atag.go | 9 +- .../encoders}/tag/atag/atag_test.go | 11 +- {encoders => pkg/encoders}/tag/tag.go | 15 +- {encoders => pkg/encoders}/tag/tag_test.go | 4 +- {encoders => pkg/encoders}/tags/tags.go | 9 +- {encoders => pkg/encoders}/tags/tags_test.go | 9 +- {encoders => pkg/encoders}/text/doc.go | 0 {encoders => pkg/encoders}/text/escape.go | 0 .../encoders}/text/escape_test.go | 4 +- {encoders => pkg/encoders}/text/helpers.go | 10 +- .../encoders}/text/helpers_test.go | 7 +- {encoders => pkg/encoders}/text/hex.go | 4 +- {encoders => pkg/encoders}/text/wrap.go | 6 +- .../encoders}/timestamp/timestamp.go | 7 +- {encoders => pkg/encoders}/unix/unix.go | 3 +- {encoders => pkg/encoders}/varint/varint.go | 5 +- .../encoders}/varint/varint_test.go | 4 +- {interfaces => pkg/interfaces}/codec/codec.go | 0 .../interfaces}/eventId/eventId.go | 0 .../interfaces}/publisher/publisher.go | 2 +- .../interfaces}/relay/interface.go | 6 +- .../interfaces}/server/server.go | 12 +- .../interfaces}/signer/signer.go | 0 {interfaces => pkg/interfaces}/store/alias.go | 5 +- .../interfaces}/store/errors.go | 0 .../interfaces}/store/store_interface.go | 15 +- {interfaces => pkg/interfaces}/typer/typer.go | 0 {protocol => pkg/protocol}/auth/doc.go | 0 {protocol => pkg/protocol}/auth/nip42.go | 15 +- {protocol => pkg/protocol}/auth/nip42_test.go | 4 +- {protocol => pkg/protocol}/dns/nip05.go | 11 +- {protocol => pkg/protocol}/dns/nip05_test.go | 6 +- {protocol => pkg/protocol}/httpauth/98.adoc | 0 {protocol => pkg/protocol}/httpauth/doc.go | 0 .../protocol}/httpauth/nip98auth.go | 17 +- .../protocol}/httpauth/nip98auth_test.go | 0 .../protocol}/httpauth/validate.go | 15 +- {protocol => pkg/protocol}/relayinfo/doc.go | 0 {protocol => pkg/protocol}/relayinfo/fetch.go | 9 +- .../protocol}/relayinfo/nip11_test.go | 0 .../protocol}/relayinfo/relayinfo.go | 0 {protocol => pkg/protocol}/relayinfo/types.go | 11 +- .../protocol}/servemux/serveMux.go | 0 .../protocol}/socketapi/handleAuth.go | 14 +- .../protocol}/socketapi/handleClose.go | 8 +- .../protocol}/socketapi/handleEvent.go | 28 +-- .../protocol}/socketapi/handleMessage.go | 17 +- .../protocol}/socketapi/handleReq.go | 24 +- {protocol => pkg/protocol}/socketapi/ok.go | 6 +- .../protocol}/socketapi/pinger.go | 7 +- .../protocol}/socketapi/publisher.go | 15 +- .../protocol}/socketapi/socketapi.go | 17 +- .../protocol}/socketapi/upgrader.go | 0 {protocol => pkg/protocol}/ws/client.go | 41 ++-- {protocol => pkg/protocol}/ws/client_test.go | 21 +- {protocol => pkg/protocol}/ws/connection.go | 16 +- {protocol => pkg/protocol}/ws/doc.go | 0 {protocol => pkg/protocol}/ws/listener.go | 17 +- {protocol => pkg/protocol}/ws/pool.go | 21 +- {protocol => pkg/protocol}/ws/subscription.go | 21 +- .../protocol}/ws/subscription_test.go | 15 +- {utils => pkg/utils}/apputil/apputil.go | 2 +- {utils => pkg/utils}/atomic/.codecov.yml | 0 {utils => pkg/utils}/atomic/CHANGELOG.md | 0 {utils => pkg/utils}/atomic/LICENSE | 0 {utils => pkg/utils}/atomic/Makefile | 0 {utils => pkg/utils}/atomic/README.md | 0 {utils => pkg/utils}/atomic/assert_test.go | 0 {utils => pkg/utils}/atomic/bool.go | 0 {utils => pkg/utils}/atomic/bool_ext.go | 0 {utils => pkg/utils}/atomic/bool_test.go | 0 {utils => pkg/utils}/atomic/bytes.go | 0 {utils => pkg/utils}/atomic/bytes_ext.go | 0 {utils => pkg/utils}/atomic/bytes_test.go | 0 {utils => pkg/utils}/atomic/doc.go | 0 {utils => pkg/utils}/atomic/duration.go | 0 {utils => pkg/utils}/atomic/duration_ext.go | 0 {utils => pkg/utils}/atomic/error.go | 0 {utils => pkg/utils}/atomic/error_ext.go | 0 {utils => pkg/utils}/atomic/error_test.go | 0 {utils => pkg/utils}/atomic/example_test.go | 3 +- {utils => pkg/utils}/atomic/float32.go | 0 {utils => pkg/utils}/atomic/float32_ext.go | 0 {utils => pkg/utils}/atomic/float32_test.go | 0 {utils => pkg/utils}/atomic/float64.go | 0 {utils => pkg/utils}/atomic/float64_ext.go | 0 {utils => pkg/utils}/atomic/float64_test.go | 0 {utils => pkg/utils}/atomic/gen.go | 0 {utils => pkg/utils}/atomic/int32.go | 0 {utils => pkg/utils}/atomic/int32_test.go | 0 {utils => pkg/utils}/atomic/int64.go | 0 {utils => pkg/utils}/atomic/int64_test.go | 0 .../atomic/internal/gen-atomicint/main.go | 0 .../internal/gen-atomicint/wrapper.tmpl | 0 .../atomic/internal/gen-atomicwrapper/main.go | 0 .../internal/gen-atomicwrapper/wrapper.tmpl | 0 {utils => pkg/utils}/atomic/nocmp.go | 0 {utils => pkg/utils}/atomic/nocmp_test.go | 0 {utils => pkg/utils}/atomic/pointer_test.go | 0 {utils => pkg/utils}/atomic/stress_test.go | 0 {utils => pkg/utils}/atomic/string.go | 0 {utils => pkg/utils}/atomic/string_ext.go | 0 {utils => pkg/utils}/atomic/string_test.go | 0 {utils => pkg/utils}/atomic/time.go | 0 {utils => pkg/utils}/atomic/time_ext.go | 0 {utils => pkg/utils}/atomic/time_test.go | 0 {utils => pkg/utils}/atomic/tools/tools.go | 0 {utils => pkg/utils}/atomic/uint32.go | 0 {utils => pkg/utils}/atomic/uint32_test.go | 0 {utils => pkg/utils}/atomic/uint64.go | 0 {utils => pkg/utils}/atomic/uint64_test.go | 0 {utils => pkg/utils}/atomic/uintptr.go | 0 {utils => pkg/utils}/atomic/uintptr_test.go | 0 {utils => pkg/utils}/atomic/unsafe_pointer.go | 0 .../utils}/atomic/unsafe_pointer_test.go | 0 {utils => pkg/utils}/atomic/value.go | 0 {utils => pkg/utils}/atomic/value_test.go | 0 {utils => pkg/utils}/chk/chk.go | 2 +- {utils => pkg/utils}/context/context.go | 0 {utils => pkg/utils}/env/config.go | 2 +- {utils => pkg/utils}/errorf/errorf.go | 2 +- {utils => pkg/utils}/interrupt/README.md | 0 {utils => pkg/utils}/interrupt/main.go | 9 +- {utils => pkg/utils}/interrupt/restart.go | 2 +- .../utils}/interrupt/restart_darwin.go | 0 .../utils}/interrupt/restart_windows.go | 0 {utils => pkg/utils}/interrupt/sigterm.go | 0 {utils => pkg/utils}/log/log.go | 2 +- {utils => pkg/utils}/lol/README.md | 0 {utils => pkg/utils}/lol/log.go | 0 {utils => pkg/utils}/lol/log_test.go | 0 .../utils}/normalize/normalize_test.go | 0 {utils => pkg/utils}/number/list.go | 0 {utils => pkg/utils}/pointers/pointers.go | 2 +- {utils => pkg/utils}/qu/README.adoc | 0 {utils => pkg/utils}/qu/qu.go | 7 +- {utils => pkg/utils}/units/units.go | 0 {version => pkg/version}/version.go | 0 readme.adoc | 2 +- realy.service => scripts/realy.service | 0 tests/generate.go | 12 +- utils/atomic/duration_test.go | 73 ------ utils/normalize/normalize.go | 143 ------------ version/version | 1 - 466 files changed, 1481 insertions(+), 2119 deletions(-) delete mode 100644 crypto/ec/base58/util_test.go delete mode 100644 database/fetch-event-by-serial.go rename orly.png => docs/orly.png (100%) delete mode 100644 encoders/json/examples_test.go delete mode 100644 encoders/json/string.go rename {app => pkg/app}/config/config.go (97%) rename {app => pkg/app}/main.go (89%) rename {app => pkg/app}/relay/accept-event.go (85%) rename {app => pkg/app}/relay/accept-req.go (85%) rename {app => pkg/app}/relay/addEvent.go (83%) rename {app => pkg/app}/relay/auth.go (92%) rename {app => pkg/app}/relay/handleRelayinfo.go (90%) rename {app => pkg/app}/relay/handleWebsocket.go (81%) rename {app => pkg/app}/relay/helpers/helpers.go (100%) rename {app => pkg/app}/relay/options/options.go (96%) rename {app => pkg/app}/relay/publish/publisher.go (91%) rename {app => pkg/app}/relay/server-impl.go (72%) rename {app => pkg/app}/relay/server-publish.go (92%) rename {app => pkg/app}/relay/server.go (89%) rename {app => pkg/app}/relay/testrelay.go (94%) rename {app => pkg/app}/resources.go (87%) rename {cmd => pkg/cmd}/lerproxy/LICENSE (100%) rename {cmd => pkg/cmd}/lerproxy/README.md (100%) rename {cmd => pkg/cmd}/lerproxy/buf/bufpool.go (100%) rename {cmd => pkg/cmd}/lerproxy/hsts/proxy.go (100%) rename {cmd => pkg/cmd}/lerproxy/main.go (97%) rename {cmd => pkg/cmd}/lerproxy/reverse/proxy.go (94%) rename {cmd => pkg/cmd}/lerproxy/tcpkeepalive/listener.go (93%) rename {cmd => pkg/cmd}/lerproxy/timeout/conn.go (96%) rename {cmd => pkg/cmd}/lerproxy/util/u.go (100%) rename {cmd => pkg/cmd}/nauth/main.go (89%) rename {cmd => pkg/cmd}/nurl/main.go (93%) rename {cmd => pkg/cmd}/vainstr/LICENSE (100%) rename {cmd => pkg/cmd}/vainstr/README.md (100%) rename {cmd => pkg/cmd}/vainstr/main.go (91%) rename {crypto => pkg/crypto}/ec/LICENSE (100%) rename {crypto => pkg/crypto}/ec/README.md (100%) rename {crypto => pkg/crypto}/ec/base58/LICENSE (100%) rename {crypto => pkg/crypto}/ec/base58/README.md (100%) rename {crypto => pkg/crypto}/ec/base58/alphabet.go (100%) rename {crypto => pkg/crypto}/ec/base58/base58.go (100%) rename {crypto => pkg/crypto}/ec/base58/base58_test.go (99%) rename {crypto => pkg/crypto}/ec/base58/base58bench_test.go (96%) rename {crypto => pkg/crypto}/ec/base58/base58check.go (98%) rename {crypto => pkg/crypto}/ec/base58/base58check_test.go (98%) rename {crypto => pkg/crypto}/ec/base58/cov_report.sh (100%) rename {crypto => pkg/crypto}/ec/base58/doc.go (100%) rename {crypto => pkg/crypto}/ec/base58/example_test.go (88%) rename {crypto => pkg/crypto}/ec/base58/genalphabet.go (100%) rename {crypto => pkg/crypto}/ec/bech32/README.md (100%) rename {crypto => pkg/crypto}/ec/bech32/bech32.go (100%) rename {crypto => pkg/crypto}/ec/bech32/bech32_test.go (99%) rename {crypto => pkg/crypto}/ec/bech32/doc.go (100%) rename {crypto => pkg/crypto}/ec/bech32/error.go (100%) rename {crypto => pkg/crypto}/ec/bech32/example_test.go (100%) rename {crypto => pkg/crypto}/ec/bech32/version.go (100%) rename {crypto => pkg/crypto}/ec/bench_test.go (98%) rename {crypto => pkg/crypto}/ec/btcec.go (87%) rename {crypto => pkg/crypto}/ec/btcec_test.go (100%) rename {crypto => pkg/crypto}/ec/chaincfg/deployment_time_frame.go (99%) rename {crypto => pkg/crypto}/ec/chaincfg/genesis.go (91%) rename {crypto => pkg/crypto}/ec/chaincfg/params.go (99%) rename {crypto => pkg/crypto}/ec/chainhash/README.md (100%) rename {crypto => pkg/crypto}/ec/chainhash/doc.go (100%) rename {crypto => pkg/crypto}/ec/chainhash/hash.go (99%) rename {crypto => pkg/crypto}/ec/chainhash/hash_test.go (100%) rename {crypto => pkg/crypto}/ec/chainhash/hashfuncs.go (96%) rename {crypto => pkg/crypto}/ec/chainhash/hashfuncs_test.go (100%) rename {crypto => pkg/crypto}/ec/ciphering.go (93%) rename {crypto => pkg/crypto}/ec/ciphering_test.go (100%) rename {crypto => pkg/crypto}/ec/curve.go (88%) rename {crypto => pkg/crypto}/ec/doc.go (100%) rename {crypto => pkg/crypto}/ec/ecdsa/README.md (100%) rename {crypto => pkg/crypto}/ec/ecdsa/bench_test.go (92%) rename {crypto => pkg/crypto}/ec/ecdsa/doc.go (100%) rename {crypto => pkg/crypto}/ec/ecdsa/error.go (100%) rename {crypto => pkg/crypto}/ec/ecdsa/error_test.go (100%) rename {crypto => pkg/crypto}/ec/ecdsa/example_test.go (100%) rename {crypto => pkg/crypto}/ec/ecdsa/signature.go (93%) rename {crypto => pkg/crypto}/ec/ecdsa/signature_test.go (99%) rename {crypto => pkg/crypto}/ec/ecdsa/util_test.go (80%) rename {crypto => pkg/crypto}/ec/error.go (95%) rename {crypto => pkg/crypto}/ec/field.go (98%) rename {crypto => pkg/crypto}/ec/field_test.go (99%) rename {crypto => pkg/crypto}/ec/fuzz_test.go (97%) rename {crypto => pkg/crypto}/ec/modnscalar.go (94%) rename {crypto => pkg/crypto}/ec/musig2/bench_test.go (98%) rename {crypto => pkg/crypto}/ec/musig2/context.go (99%) rename {crypto => pkg/crypto}/ec/musig2/data/key_agg_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/data/key_sort_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/data/nonce_agg_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/data/nonce_gen_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/data/sig_agg_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/data/sign_verify_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/data/tweak_vectors.json (100%) rename {crypto => pkg/crypto}/ec/musig2/doc.go (100%) rename {crypto => pkg/crypto}/ec/musig2/keys.go (98%) rename {crypto => pkg/crypto}/ec/musig2/keys_test.go (98%) rename {crypto => pkg/crypto}/ec/musig2/musig2_test.go (98%) rename {crypto => pkg/crypto}/ec/musig2/nonces.go (98%) rename {crypto => pkg/crypto}/ec/musig2/nonces_test.go (96%) rename {crypto => pkg/crypto}/ec/musig2/sign.go (96%) rename {crypto => pkg/crypto}/ec/musig2/sign_test.go (98%) rename {crypto => pkg/crypto}/ec/pubkey.go (98%) rename {crypto => pkg/crypto}/ec/pubkey_test.go (100%) rename {crypto => pkg/crypto}/ec/schnorr/bench_test.go (96%) rename {crypto => pkg/crypto}/ec/schnorr/bip/bip-0340.mediawiki (100%) rename {crypto => pkg/crypto}/ec/schnorr/bip/bip340/reference.py (100%) rename {crypto => pkg/crypto}/ec/schnorr/bip/bip340/test-vectors.csv (100%) rename {crypto => pkg/crypto}/ec/schnorr/bip/bip340/test-vectors.py (100%) rename {crypto => pkg/crypto}/ec/schnorr/error.go (100%) rename {crypto => pkg/crypto}/ec/schnorr/pubkey.go (95%) rename {crypto => pkg/crypto}/ec/schnorr/schnorrdoc.go (100%) rename {crypto => pkg/crypto}/ec/schnorr/schnorrerror_test.go (100%) rename {crypto => pkg/crypto}/ec/schnorr/signature.go (98%) rename {crypto => pkg/crypto}/ec/schnorr/signature_test.go (98%) rename {crypto => pkg/crypto}/ec/sec2-v2.pdf (100%) rename {crypto => pkg/crypto}/ec/seckey.go (98%) rename {crypto => pkg/crypto}/ec/secp256k1/LICENSE (100%) rename {crypto => pkg/crypto}/ec/secp256k1/README.md (100%) rename {crypto => pkg/crypto}/ec/secp256k1/bench_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/curve.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/curve_test.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/doc.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/ecdh.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/ecdh_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/ellipticadaptor.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/ellipticadaptor_bench_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/ellipticadaptor_test.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/error.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/error_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/example_test.go (90%) rename {crypto => pkg/crypto}/ec/secp256k1/field.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/field_bench_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/field_test.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/loadprecomputed.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/modnscalar.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/modnscalar_bench_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/modnscalar_test.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/nonce.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/nonce_test.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/precomps.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/precomps/doc.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/precomps/genprecomps.go (95%) rename {crypto => pkg/crypto}/ec/secp256k1/pubkey.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/pubkey_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/rawbytepoints.bin (100%) rename {crypto => pkg/crypto}/ec/secp256k1/seckey.go (99%) rename {crypto => pkg/crypto}/ec/secp256k1/seckey_bench_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/seckey_test.go (100%) rename {crypto => pkg/crypto}/ec/secp256k1/util_test.go (80%) rename {crypto => pkg/crypto}/ec/taproot/taproot.go (90%) rename {crypto/p256k/btcec => pkg/crypto/ec}/util_test.go (80%) rename {crypto => pkg/crypto}/ec/wire/blockheader.go (95%) rename {crypto => pkg/crypto}/ec/wire/msgblock.go (100%) rename {crypto => pkg/crypto}/ec/wire/msgtx.go (96%) rename {crypto => pkg/crypto}/ec/wire/wire.go (100%) rename {crypto => pkg/crypto}/encryption/README.md (100%) rename {crypto => pkg/crypto}/encryption/doc.go (100%) rename {crypto => pkg/crypto}/encryption/nip4.go (96%) rename {crypto => pkg/crypto}/encryption/nip44.go (98%) rename {crypto => pkg/crypto}/encryption/nip44_test.go (99%) rename {crypto => pkg/crypto}/keys/keys.go (94%) rename {crypto => pkg/crypto}/p256k/README.md (96%) rename {crypto => pkg/crypto}/p256k/btcec.go (91%) rename {crypto => pkg/crypto}/p256k/btcec/btcec.go (68%) rename {crypto => pkg/crypto}/p256k/btcec/btcec_test.go (95%) rename {crypto/ec => pkg/crypto/p256k/btcec}/util_test.go (80%) rename {crypto => pkg/crypto}/p256k/doc.go (100%) rename {crypto => pkg/crypto}/p256k/p256k.go (88%) rename {crypto => pkg/crypto}/p256k/p256k_test.go (89%) rename {crypto => pkg/crypto}/p256k/secp256k1.go (91%) rename {crypto => pkg/crypto}/p256k/secp256k1_test.go (91%) rename {crypto => pkg/crypto}/p256k/util_test.go (80%) rename {crypto => pkg/crypto}/sha256/LICENSE (100%) rename {crypto => pkg/crypto}/sha256/README.md (100%) rename {crypto => pkg/crypto}/sha256/cpuid_other.go (100%) rename {crypto => pkg/crypto}/sha256/doc.go (100%) rename {crypto => pkg/crypto}/sha256/sha256.go (100%) rename {crypto => pkg/crypto}/sha256/sha256_test.go (99%) rename {crypto => pkg/crypto}/sha256/sha256blockAvx512_amd64.asm (100%) rename {crypto => pkg/crypto}/sha256/sha256blockAvx512_amd64.go (100%) rename {crypto => pkg/crypto}/sha256/sha256blockAvx512_amd64.s (100%) rename {crypto => pkg/crypto}/sha256/sha256blockAvx512_amd64_test.go (100%) rename {crypto => pkg/crypto}/sha256/sha256block_amd64.go (100%) rename {crypto => pkg/crypto}/sha256/sha256block_amd64.s (100%) rename {crypto => pkg/crypto}/sha256/sha256block_amd64_test.go (100%) rename {crypto => pkg/crypto}/sha256/sha256block_arm64.go (100%) rename {crypto => pkg/crypto}/sha256/sha256block_arm64.s (100%) rename {crypto => pkg/crypto}/sha256/sha256block_other.go (100%) rename {crypto => pkg/crypto}/sha256/test-architectures.sh (100%) rename {database => pkg/database}/database.go (92%) rename {database => pkg/database}/delete-event.go (87%) rename {database => pkg/database}/fetch-event-by-serial_test.go (94%) rename {database => pkg/database}/get-fullidpubkey-by-serial.go (85%) rename {database => pkg/database}/get-indexes-for-event.go (96%) rename {database => pkg/database}/get-indexes-for-event_test.go (90%) rename {database => pkg/database}/get-indexes-from-filter.go (91%) rename {database => pkg/database}/get-indexes-from-filter_test.go (90%) rename {database => pkg/database}/get-serial-by-id.go (85%) rename {database => pkg/database}/get-serial-by-id_test.go (94%) rename {database => pkg/database}/get-serials-by-range.go (92%) rename {database => pkg/database}/get-serials-by-range_test.go (94%) rename {database => pkg/database}/indexes/keys.go (66%) rename {database => pkg/database}/indexes/keys_test.go (99%) rename {database => pkg/database}/indexes/types/endianness_test.go (100%) rename {database => pkg/database}/indexes/types/fullid.go (95%) rename {database => pkg/database}/indexes/types/fullid_test.go (97%) rename {database => pkg/database}/indexes/types/identhash.go (100%) rename {database => pkg/database}/indexes/types/identhash_test.go (97%) rename {database => pkg/database}/indexes/types/idhash.go (95%) rename {database => pkg/database}/indexes/types/idhash_test.go (97%) rename {database => pkg/database}/indexes/types/letter.go (94%) rename {database => pkg/database}/indexes/types/letter_test.go (97%) rename {database => pkg/database}/indexes/types/pubhash.go (90%) rename {database => pkg/database}/indexes/types/pubhash_test.go (97%) rename {database => pkg/database}/indexes/types/timestamp.go (94%) rename {database => pkg/database}/indexes/types/timestamp_test.go (98%) rename {database => pkg/database}/indexes/types/uint16.go (100%) rename {database => pkg/database}/indexes/types/uint16_test.go (98%) rename {database => pkg/database}/indexes/types/uint24.go (99%) rename {database => pkg/database}/indexes/types/uint24_test.go (98%) rename {database => pkg/database}/indexes/types/uint32.go (100%) rename {database => pkg/database}/indexes/types/uint32_test.go (98%) rename {database => pkg/database}/indexes/types/uint40.go (99%) rename {database => pkg/database}/indexes/types/uint40_test.go (98%) rename {database => pkg/database}/indexes/types/uint64.go (100%) rename {database => pkg/database}/indexes/types/uint64_test.go (98%) rename {database => pkg/database}/indexes/types/word.go (96%) rename {database => pkg/database}/indexes/types/word_test.go (97%) rename {database => pkg/database}/logger.go (97%) rename {database => pkg/database}/query-events-multiple-param-replaceable_test.go (93%) rename {database => pkg/database}/query-events.go (96%) rename {database => pkg/database}/query-events_test.go (97%) rename {database => pkg/database}/query-for-authors-tags_test.go (93%) rename {database => pkg/database}/query-for-created-at_test.go (95%) rename {database => pkg/database}/query-for-ids.go (93%) rename {database => pkg/database}/query-for-ids_test.go (97%) rename {database => pkg/database}/query-for-kinds-authors-tags_test.go (93%) rename {database => pkg/database}/query-for-kinds-authors_test.go (90%) rename {database => pkg/database}/query-for-kinds-tags_test.go (92%) rename {database => pkg/database}/query-for-kinds_test.go (90%) rename {database => pkg/database}/query-for-serials.go (87%) rename {database => pkg/database}/query-for-serials_test.go (94%) rename {database => pkg/database}/query-for-tags_test.go (93%) rename {database => pkg/database}/save-event.go (90%) rename {database => pkg/database}/save-event_test.go (93%) rename {encoders => pkg/encoders}/bech32encoding/doc.go (100%) rename {encoders => pkg/encoders}/bech32encoding/keys.go (86%) rename {encoders => pkg/encoders}/bech32encoding/keys_test.go (89%) rename {encoders => pkg/encoders}/bech32encoding/nip19.go (95%) rename {encoders => pkg/encoders}/bech32encoding/nip19_test.go (97%) rename {encoders => pkg/encoders}/bech32encoding/pointers/pointers.go (93%) rename {encoders => pkg/encoders}/bech32encoding/tlv/tlv.go (100%) rename {encoders => pkg/encoders}/codecbuf/README.md (100%) rename {encoders => pkg/encoders}/codecbuf/pool.go (100%) rename {encoders => pkg/encoders}/codecbuf/pool_test.go (100%) rename {encoders => pkg/encoders}/envelopes/authenvelope/authenvelope.go (92%) rename {encoders => pkg/encoders}/envelopes/authenvelope/authenvelope_test.go (93%) rename {encoders => pkg/encoders}/envelopes/closedenvelope/closedenvelope.go (90%) rename {encoders => pkg/encoders}/envelopes/closedenvelope/closedenvelope_test.go (95%) rename {encoders => pkg/encoders}/envelopes/closeenvelope/closeenvelope.go (93%) rename {encoders => pkg/encoders}/envelopes/closeenvelope/closeenvelope_test.go (93%) rename {encoders => pkg/encoders}/envelopes/countenvelope/countenvelope.go (94%) rename {encoders => pkg/encoders}/envelopes/countenvelope/countenvelope_test.go (91%) rename {encoders => pkg/encoders}/envelopes/doc.go (100%) rename {encoders => pkg/encoders}/envelopes/eoseenvelope/eoseenvelope.go (94%) rename {encoders => pkg/encoders}/envelopes/eoseenvelope/eoseenvelope_test.go (93%) rename {encoders => pkg/encoders}/envelopes/eventenvelope/eventenvelope.go (95%) rename {encoders => pkg/encoders}/envelopes/eventenvelope/eventenvelope_test.go (92%) rename {encoders => pkg/encoders}/envelopes/identify.go (100%) rename {encoders => pkg/encoders}/envelopes/messages/messages.go (100%) rename {encoders => pkg/encoders}/envelopes/noticeenvelope/noticeenvelope.go (89%) rename {encoders => pkg/encoders}/envelopes/noticeenvelope/noticeenvelope_test.go (92%) rename {encoders => pkg/encoders}/envelopes/okenvelope/okenvelope.go (82%) rename {encoders => pkg/encoders}/envelopes/okenvelope/okenvelope_test.go (90%) rename {encoders => pkg/encoders}/envelopes/process.go (100%) rename {encoders => pkg/encoders}/envelopes/reqenvelope/reqenvelope.go (93%) rename {encoders => pkg/encoders}/envelopes/reqenvelope/reqenvelope_test.go (91%) rename {encoders => pkg/encoders}/event/binary.go (90%) rename {encoders => pkg/encoders}/event/binary_test.go (92%) rename {encoders => pkg/encoders}/event/canonical.go (79%) rename {encoders => pkg/encoders}/event/canonical_test.go (100%) rename {encoders => pkg/encoders}/event/codectester/divider/main.go (96%) rename {encoders => pkg/encoders}/event/codectester/divider/readme.md (100%) rename {encoders => pkg/encoders}/event/codectester/doc.go (100%) rename {encoders => pkg/encoders}/event/event.go (90%) rename {encoders => pkg/encoders}/event/event_test.go (98%) rename {encoders => pkg/encoders}/event/examples/eventcache.go (100%) rename {encoders => pkg/encoders}/event/json.go (82%) rename {encoders => pkg/encoders}/event/json_whitespace_test.go (97%) rename {encoders => pkg/encoders}/event/signatures.go (88%) rename {encoders => pkg/encoders}/event/sort.go (100%) rename {encoders => pkg/encoders}/eventid/eventid.go (95%) rename {encoders => pkg/encoders}/eventidserial/eventidserial.go (100%) rename {encoders => pkg/encoders}/filter/filter.go (92%) rename {encoders => pkg/encoders}/filter/filter_test.go (96%) rename {encoders => pkg/encoders}/filter/simple.go (95%) rename {encoders => pkg/encoders}/filters/filters.go (95%) rename {encoders => pkg/encoders}/filters/filters_test.go (96%) rename {encoders => pkg/encoders}/hex/aliases.go (95%) rename {encoders => pkg/encoders}/ints/base10k.txt (100%) rename {encoders => pkg/encoders}/ints/gen/pregen.go (91%) rename {encoders => pkg/encoders}/ints/ints.go (98%) rename {encoders => pkg/encoders}/ints/ints_test.go (98%) rename {encoders => pkg/encoders}/json/array.go (96%) rename {encoders => pkg/encoders}/json/base64.go (91%) rename {encoders => pkg/encoders}/json/bech32.go (89%) rename {encoders => pkg/encoders}/json/bool.go (100%) rename {encoders => pkg/encoders}/json/hex.go (87%) rename {encoders => pkg/encoders}/json/keyvalue.go (95%) rename {encoders => pkg/encoders}/json/signed.go (96%) rename {encoders => pkg/encoders}/json/unsigned.go (94%) rename {encoders => pkg/encoders}/kind/kind.go (99%) rename {encoders => pkg/encoders}/kind/kind_test.go (96%) rename {encoders => pkg/encoders}/kinds/kinds.go (95%) rename {encoders => pkg/encoders}/kinds/kinds_test.go (91%) rename {encoders => pkg/encoders}/reason/reason.go (100%) rename {encoders => pkg/encoders}/subscription/subscriptionid.go (94%) rename {encoders => pkg/encoders}/subscription/subscriptionid_test.go (96%) rename {encoders => pkg/encoders}/tag/atag/atag.go (89%) rename {encoders => pkg/encoders}/tag/atag/atag_test.go (82%) rename {encoders => pkg/encoders}/tag/tag.go (95%) rename {encoders => pkg/encoders}/tag/tag_test.go (97%) rename {encoders => pkg/encoders}/tags/tags.go (98%) rename {encoders => pkg/encoders}/tags/tags_test.go (97%) rename {encoders => pkg/encoders}/text/doc.go (100%) rename {encoders => pkg/encoders}/text/escape.go (100%) rename {encoders => pkg/encoders}/text/escape_test.go (99%) rename {encoders => pkg/encoders}/text/helpers.go (98%) rename {encoders => pkg/encoders}/text/helpers_test.go (91%) rename {encoders => pkg/encoders}/text/hex.go (92%) rename {encoders => pkg/encoders}/text/wrap.go (96%) rename {encoders => pkg/encoders}/timestamp/timestamp.go (97%) rename {encoders => pkg/encoders}/unix/unix.go (92%) rename {encoders => pkg/encoders}/varint/varint.go (97%) rename {encoders => pkg/encoders}/varint/varint_test.go (87%) rename {interfaces => pkg/interfaces}/codec/codec.go (100%) rename {interfaces => pkg/interfaces}/eventId/eventId.go (100%) rename {interfaces => pkg/interfaces}/publisher/publisher.go (84%) rename {interfaces => pkg/interfaces}/relay/interface.go (91%) rename {interfaces => pkg/interfaces}/server/server.go (79%) rename {interfaces => pkg/interfaces}/signer/signer.go (100%) rename {interfaces => pkg/interfaces}/store/alias.go (64%) rename {interfaces => pkg/interfaces}/store/errors.go (100%) rename {interfaces => pkg/interfaces}/store/store_interface.go (92%) rename {interfaces => pkg/interfaces}/typer/typer.go (100%) rename {protocol => pkg/protocol}/auth/doc.go (100%) rename {protocol => pkg/protocol}/auth/nip42.go (93%) rename {protocol => pkg/protocol}/auth/nip42_test.go (91%) rename {protocol => pkg/protocol}/dns/nip05.go (96%) rename {protocol => pkg/protocol}/dns/nip05_test.go (94%) rename {protocol => pkg/protocol}/httpauth/98.adoc (100%) rename {protocol => pkg/protocol}/httpauth/doc.go (100%) rename {protocol => pkg/protocol}/httpauth/nip98auth.go (84%) rename {protocol => pkg/protocol}/httpauth/nip98auth_test.go (100%) rename {protocol => pkg/protocol}/httpauth/validate.go (95%) rename {protocol => pkg/protocol}/relayinfo/doc.go (100%) rename {protocol => pkg/protocol}/relayinfo/fetch.go (88%) rename {protocol => pkg/protocol}/relayinfo/nip11_test.go (100%) rename {protocol => pkg/protocol}/relayinfo/relayinfo.go (100%) rename {protocol => pkg/protocol}/relayinfo/types.go (98%) rename {protocol => pkg/protocol}/servemux/serveMux.go (100%) rename {protocol => pkg/protocol}/socketapi/handleAuth.go (81%) rename {protocol => pkg/protocol}/socketapi/handleClose.go (90%) rename {protocol => pkg/protocol}/socketapi/handleEvent.go (94%) rename {protocol => pkg/protocol}/socketapi/handleMessage.go (80%) rename {protocol => pkg/protocol}/socketapi/handleReq.go (87%) rename {protocol => pkg/protocol}/socketapi/ok.go (94%) rename {protocol => pkg/protocol}/socketapi/pinger.go (94%) rename {protocol => pkg/protocol}/socketapi/publisher.go (92%) rename {protocol => pkg/protocol}/socketapi/socketapi.go (92%) rename {protocol => pkg/protocol}/socketapi/upgrader.go (100%) rename {protocol => pkg/protocol}/ws/client.go (95%) rename {protocol => pkg/protocol}/ws/client_test.go (95%) rename {protocol => pkg/protocol}/ws/connection.go (97%) rename {protocol => pkg/protocol}/ws/doc.go (100%) rename {protocol => pkg/protocol}/ws/listener.go (92%) rename {protocol => pkg/protocol}/ws/pool.go (97%) rename {protocol => pkg/protocol}/ws/subscription.go (92%) rename {protocol => pkg/protocol}/ws/subscription_test.go (92%) rename {utils => pkg/utils}/apputil/apputil.go (98%) rename {utils => pkg/utils}/atomic/.codecov.yml (100%) rename {utils => pkg/utils}/atomic/CHANGELOG.md (100%) rename {utils => pkg/utils}/atomic/LICENSE (100%) rename {utils => pkg/utils}/atomic/Makefile (100%) rename {utils => pkg/utils}/atomic/README.md (100%) rename {utils => pkg/utils}/atomic/assert_test.go (100%) rename {utils => pkg/utils}/atomic/bool.go (100%) rename {utils => pkg/utils}/atomic/bool_ext.go (100%) rename {utils => pkg/utils}/atomic/bool_test.go (100%) rename {utils => pkg/utils}/atomic/bytes.go (100%) rename {utils => pkg/utils}/atomic/bytes_ext.go (100%) rename {utils => pkg/utils}/atomic/bytes_test.go (100%) rename {utils => pkg/utils}/atomic/doc.go (100%) rename {utils => pkg/utils}/atomic/duration.go (100%) rename {utils => pkg/utils}/atomic/duration_ext.go (100%) rename {utils => pkg/utils}/atomic/error.go (100%) rename {utils => pkg/utils}/atomic/error_ext.go (100%) rename {utils => pkg/utils}/atomic/error_test.go (100%) rename {utils => pkg/utils}/atomic/example_test.go (98%) rename {utils => pkg/utils}/atomic/float32.go (100%) rename {utils => pkg/utils}/atomic/float32_ext.go (100%) rename {utils => pkg/utils}/atomic/float32_test.go (100%) rename {utils => pkg/utils}/atomic/float64.go (100%) rename {utils => pkg/utils}/atomic/float64_ext.go (100%) rename {utils => pkg/utils}/atomic/float64_test.go (100%) rename {utils => pkg/utils}/atomic/gen.go (100%) rename {utils => pkg/utils}/atomic/int32.go (100%) rename {utils => pkg/utils}/atomic/int32_test.go (100%) rename {utils => pkg/utils}/atomic/int64.go (100%) rename {utils => pkg/utils}/atomic/int64_test.go (100%) rename {utils => pkg/utils}/atomic/internal/gen-atomicint/main.go (100%) rename {utils => pkg/utils}/atomic/internal/gen-atomicint/wrapper.tmpl (100%) rename {utils => pkg/utils}/atomic/internal/gen-atomicwrapper/main.go (100%) rename {utils => pkg/utils}/atomic/internal/gen-atomicwrapper/wrapper.tmpl (100%) rename {utils => pkg/utils}/atomic/nocmp.go (100%) rename {utils => pkg/utils}/atomic/nocmp_test.go (100%) rename {utils => pkg/utils}/atomic/pointer_test.go (100%) rename {utils => pkg/utils}/atomic/stress_test.go (100%) rename {utils => pkg/utils}/atomic/string.go (100%) rename {utils => pkg/utils}/atomic/string_ext.go (100%) rename {utils => pkg/utils}/atomic/string_test.go (100%) rename {utils => pkg/utils}/atomic/time.go (100%) rename {utils => pkg/utils}/atomic/time_ext.go (100%) rename {utils => pkg/utils}/atomic/time_test.go (100%) rename {utils => pkg/utils}/atomic/tools/tools.go (100%) rename {utils => pkg/utils}/atomic/uint32.go (100%) rename {utils => pkg/utils}/atomic/uint32_test.go (100%) rename {utils => pkg/utils}/atomic/uint64.go (100%) rename {utils => pkg/utils}/atomic/uint64_test.go (100%) rename {utils => pkg/utils}/atomic/uintptr.go (100%) rename {utils => pkg/utils}/atomic/uintptr_test.go (100%) rename {utils => pkg/utils}/atomic/unsafe_pointer.go (100%) rename {utils => pkg/utils}/atomic/unsafe_pointer_test.go (100%) rename {utils => pkg/utils}/atomic/value.go (100%) rename {utils => pkg/utils}/atomic/value_test.go (100%) rename {utils => pkg/utils}/chk/chk.go (91%) rename {utils => pkg/utils}/context/context.go (100%) rename {utils => pkg/utils}/env/config.go (97%) rename {utils => pkg/utils}/errorf/errorf.go (91%) rename {utils => pkg/utils}/interrupt/README.md (100%) rename {utils => pkg/utils}/interrupt/main.go (97%) rename {utils => pkg/utils}/interrupt/restart.go (93%) rename {utils => pkg/utils}/interrupt/restart_darwin.go (100%) rename {utils => pkg/utils}/interrupt/restart_windows.go (100%) rename {utils => pkg/utils}/interrupt/sigterm.go (100%) rename {utils => pkg/utils}/log/log.go (91%) rename {utils => pkg/utils}/lol/README.md (100%) rename {utils => pkg/utils}/lol/log.go (100%) rename {utils => pkg/utils}/lol/log_test.go (100%) rename {utils => pkg/utils}/normalize/normalize_test.go (100%) rename {utils => pkg/utils}/number/list.go (100%) rename {utils => pkg/utils}/pointers/pointers.go (94%) rename {utils => pkg/utils}/qu/README.adoc (100%) rename {utils => pkg/utils}/qu/qu.go (98%) rename {utils => pkg/utils}/units/units.go (100%) rename {version => pkg/version}/version.go (100%) rename realy.service => scripts/realy.service (100%) delete mode 100644 utils/atomic/duration_test.go delete mode 100644 utils/normalize/normalize.go delete mode 100644 version/version diff --git a/.gitignore b/.gitignore index ed4bf95..abbbb63 100644 --- a/.gitignore +++ b/.gitignore @@ -64,7 +64,7 @@ node_modules/** !.gitmodules !*.txt !*.sum -!version +!pkg/version !*.service !*.benc !*.png @@ -90,7 +90,7 @@ node_modules/** /blocklist.json /gui/gui/main.wasm /gui/gui/index.html -database/testrealy +pkg/database/testrealy /.idea/workspace.xml /.idea/dictionaries/project.xml /.idea/shelf/Add_tombstone_handling__enhance_event_ID_logic__update_imports.xml diff --git a/crypto/ec/base58/util_test.go b/crypto/ec/base58/util_test.go deleted file mode 100644 index a24f5e3..0000000 --- a/crypto/ec/base58/util_test.go +++ /dev/null @@ -1,9 +0,0 @@ -package base58_test - -import ( - "orly.dev/utils/lol" -) - -var ( - log, chk, errorf = lol.Main.Log, lol.Main.Check, lol.Main.Errorf -) diff --git a/database/fetch-event-by-serial.go b/database/fetch-event-by-serial.go deleted file mode 100644 index 0971f5b..0000000 --- a/database/fetch-event-by-serial.go +++ /dev/null @@ -1,39 +0,0 @@ -package database - -import ( - "bytes" - "github.com/dgraph-io/badger/v4" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/codecbuf" - "orly.dev/encoders/event" - "orly.dev/utils/chk" -) - -func (d *D) FetchEventBySerial(ser *types.Uint40) (ev *event.E, err error) { - if err = d.View( - func(txn *badger.Txn) (err error) { - buf := codecbuf.Get() - defer codecbuf.Put(buf) - if err = indexes.EventEnc(ser).MarshalWrite(buf); chk.E(err) { - return - } - var item *badger.Item - if item, err = txn.Get(buf.Bytes()); chk.E(err) { - return - } - var v []byte - if v, err = item.ValueCopy(nil); chk.E(err) { - return - } - ev = new(event.E) - if err = ev.UnmarshalBinary(bytes.NewBuffer(v)); chk.E(err) { - return - } - return - }, - ); err != nil { - return - } - return -} diff --git a/orly.png b/docs/orly.png similarity index 100% rename from orly.png rename to docs/orly.png diff --git a/encoders/json/examples_test.go b/encoders/json/examples_test.go deleted file mode 100644 index a1a97c2..0000000 --- a/encoders/json/examples_test.go +++ /dev/null @@ -1,218 +0,0 @@ -package json - -import ( - "bytes" - "fmt" - "orly.dev/utils/chk" - - "orly.dev/encoders/hex" -) - -func ExampleBool_Marshal() { - var b []byte - bt := &Bool{true} - b = bt.Marshal(b) - fmt.Printf("%s\n", b) - bt2 := &Bool{} - rem, err := bt2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", bt2.V == true) - b = b[:0] - bf := &Bool{} // implicit initialized bool is false - b = bf.Marshal(b) - fmt.Printf("%s\n", b) - fmt.Printf("%v\n", bf.V == false) - // Output: - // true - // true - // false - // true -} - -func ExampleUnsigned_Marshal() { - var b []byte - u := &Unsigned{} - b = u.Marshal(b) - fmt.Printf("%s\n", b) - u2 := &Unsigned{} - rem, err := u2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", u2.V == 0) - u.V = 69420 - b = b[:0] - b = u.Marshal(b) - fmt.Printf("%s\n", b) - rem, err = u2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", u2.V == 69420) - // Output: - // 0 - // true - // 69420 - // true -} - -func ExampleSigned_Marshal() { - var b []byte - s := &Signed{} - b = s.Marshal(b) - fmt.Printf("%s\n", b) - s2 := &Signed{} - rem, err := s2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", s2.V == 0) - s.V = 69420 - b = b[:0] - b = s.Marshal(b) - fmt.Printf("%s\n", b) - rem, err = s2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", s2.V == s.V) - s.V *= -69420 - b = b[:0] - b = s.Marshal(b) - fmt.Printf("%s\n", b) - rem, err = s2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", s2.V == s.V) - // Output: - // 0 - // true - // 69420 - // true - // -4819136400 - // true -} - -func ExampleString_Marshal() { - var b []byte - const ex = `test with - -newlines and hidden tab and spaces at the end ` - s := NewString(ex) - b = s.Marshal(b) - fmt.Printf("%s\n", b) - s2 := &String{} - rem, err := s2.Unmarshal(b) - if err != nil || len(rem) != 0 { - return - } - fmt.Printf("%v\n", bytes.Equal(s2.V, []byte(ex))) - // Output: - // "test with\n\t\nnewlines and hidden tab and spaces at the end " - // true -} - -func ExampleBech32_Marshal() { - const ( - hrp = "herp" - hexVal = "00deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef" - ) - bin, err := hex.Dec(hexVal) - if err != nil { - return - } - b32 := &Bech32{[]byte(hrp), bin} - b := b32.Marshal(nil) - fmt.Printf("%s\n", b) - b33 := &Bech32{HRP: []byte(hrp)} - var rem []byte - rem, err = b33.Unmarshal(b) - if chk.E(err) || len(rem) != 0 { - return - } - fmt.Printf("hrp: %s\ndata: %0x\n", b33.HRP, b33.V) - fmt.Printf("%v\n", bytes.Equal(bin, b33.V)) - // Output: - // "herp1qr02m0h0etlqzg69v7y6hn00qr02m0h0etlqzg69v7y6hn00jujvlj" - // hrp: herp - // data: 00deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef - // true -} - -func ExampleHex_Marshal() { - const ( - hexVal = "deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef" - ) - bin, err := hex.Dec(hexVal) - if err != nil { - return - } - h := &Hex{bin} - b := h.Marshal(nil) - fmt.Printf("%s\n", b) - h2 := &Hex{} - var rem []byte - rem, err = h2.Unmarshal(b) - if chk.E(err) || len(rem) != 0 { - fmt.Printf("%s\n%s", err.Error(), rem) - return - } - fmt.Printf("data: %0x\n", h2.V) - fmt.Printf("%v\n", bytes.Equal(bin, h2.V)) - // Output: - // "deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef" - // data: deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef - // true -} -func ExampleBase64_Marshal() { - const ( - hexVal = "deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef00" - ) - bin, err := hex.Dec(hexVal) - if err != nil { - return - } - b1 := &Base64{bin} - var b []byte - b = b1.Marshal(nil) - fmt.Printf("%s\n", b) - b2 := &Base64{} - var rem []byte - rem, err = b2.Unmarshal(b) - if chk.E(err) || len(rem) != 0 { - fmt.Printf("%s\n%s", err.Error(), rem) - return - } - fmt.Printf("data: %0x\n", b2.V) - fmt.Printf("%v\n", bytes.Equal(bin, b2.V)) - // Output: - // "3q2+78r+ASNFZ4mrze8A3q2+78r+ASNFZ4mrze8A" - // data: deadbeefcafe0123456789abcdef00deadbeefcafe0123456789abcdef00 - // true -} -func ExampleKeyValue_Marshal() { - const ( - // deliberately put whitespace here to make sure it parses. even garbage will parse, but - // we aren't going to bother, mainly whitespace needs to be allowed. - keyVal = `"key" : -"value"` - ) - kv := &KeyValue{Value: &String{}} - rem, err := kv.Unmarshal([]byte(keyVal)) - if chk.E(err) || len(rem) != 0 { - fmt.Printf("%s\n'%s'", err.Error(), rem) - return - } - kv2 := &KeyValue{[]byte("key"), &String{[]byte("value")}} - var b, b2 []byte - b = kv.Marshal(b) - b2 = kv2.Marshal(b2) - fmt.Printf("%s\n%s\n%v\n", b, b2, bytes.Equal(b, b2)) - // Output: - // "key":"value" - // "key":"value" - // true -} diff --git a/encoders/json/string.go b/encoders/json/string.go deleted file mode 100644 index 166830d..0000000 --- a/encoders/json/string.go +++ /dev/null @@ -1,36 +0,0 @@ -package json - -import ( - "orly.dev/encoders/text" - "orly.dev/utils/chk" -) - -// String is a regular string. Must be escaped as per nip-01. Bytes stored in it -// are not escaped, only must be escaped to output JSON. -// -// Again like the other types, create a new String with: -// -// str := json.String{} -// -// There is also a convenience NewString function that generically automatically -// converts actual golang strings to save the caller from doing so. -type String struct{ V []byte } - -// NewString creates a new String from a string or byte string. -func NewString[V ~string | ~[]byte](s V) *String { return &String{[]byte(s)} } - -// Marshal a String into a quoted byte string. -func (s *String) Marshal(dst []byte) (b []byte) { - b = text.AppendQuote(dst, s.V, text.NostrEscape) - return -} - -// Unmarshal from a quoted JSON string into a String. -func (s *String) Unmarshal(dst []byte) (rem []byte, err error) { - var c []byte - if c, rem, err = text.UnmarshalQuoted(dst); chk.E(err) { - return - } - s.V = c - return -} diff --git a/main.go b/main.go index f76235b..d1259a3 100644 --- a/main.go +++ b/main.go @@ -8,19 +8,18 @@ import ( "github.com/pkg/profile" "net/http" _ "net/http/pprof" - "orly.dev/app/relay" - "orly.dev/app/relay/options" - "orly.dev/utils/chk" - "orly.dev/utils/interrupt" - "orly.dev/utils/log" - "orly.dev/version" + app2 "orly.dev/pkg/app" + "orly.dev/pkg/app/config" + "orly.dev/pkg/app/relay" + "orly.dev/pkg/app/relay/options" + "orly.dev/pkg/database" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/interrupt" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" + "orly.dev/pkg/version" "os" - - "orly.dev/app" - "orly.dev/app/config" - "orly.dev/database" - "orly.dev/utils/context" - "orly.dev/utils/lol" ) func main() { @@ -55,8 +54,8 @@ func main() { if chk.E(err) { os.Exit(1) } - r := &app.Relay{C: cfg, Store: storage} - go app.MonitorResources(c) + r := &app2.Relay{C: cfg, Store: storage} + go app2.MonitorResources(c) var server *relay.Server serverParams := &relay.ServerParams{ Ctx: c, diff --git a/app/config/config.go b/pkg/app/config/config.go similarity index 97% rename from app/config/config.go rename to pkg/app/config/config.go index 7d3594b..3706596 100644 --- a/app/config/config.go +++ b/pkg/app/config/config.go @@ -5,11 +5,12 @@ package config import ( "fmt" "io" - "orly.dev/utils/chk" - env2 "orly.dev/utils/env" - "orly.dev/utils/log" - "orly.dev/utils/lol" - "orly.dev/version" + "orly.dev/pkg/utils/apputil" + "orly.dev/pkg/utils/chk" + env2 "orly.dev/pkg/utils/env" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" + "orly.dev/pkg/version" "os" "path/filepath" "reflect" @@ -19,8 +20,6 @@ import ( "github.com/adrg/xdg" "go-simpler.org/env" - - "orly.dev/utils/apputil" ) // C is the configuration for the relay. These are read from the environment if diff --git a/app/main.go b/pkg/app/main.go similarity index 89% rename from app/main.go rename to pkg/app/main.go index 222f4b7..7af41b0 100644 --- a/app/main.go +++ b/pkg/app/main.go @@ -3,14 +3,13 @@ package app import ( "net/http" + "orly.dev/pkg/app/config" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/context" "sync" - - "orly.dev/app/config" - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/filters" - "orly.dev/interfaces/store" - "orly.dev/utils/context" ) type List map[string]struct{} diff --git a/app/relay/accept-event.go b/pkg/app/relay/accept-event.go similarity index 85% rename from app/relay/accept-event.go rename to pkg/app/relay/accept-event.go index e01a845..f999598 100644 --- a/app/relay/accept-event.go +++ b/pkg/app/relay/accept-event.go @@ -2,8 +2,8 @@ package relay import ( "net/http" - "orly.dev/encoders/event" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/utils/context" ) func (s *Server) AcceptEvent( diff --git a/app/relay/accept-req.go b/pkg/app/relay/accept-req.go similarity index 85% rename from app/relay/accept-req.go rename to pkg/app/relay/accept-req.go index 379ca8d..6e8e663 100644 --- a/app/relay/accept-req.go +++ b/pkg/app/relay/accept-req.go @@ -2,8 +2,8 @@ package relay import ( "net/http" - "orly.dev/encoders/filters" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/utils/context" ) func (s *Server) AcceptReq( diff --git a/app/relay/addEvent.go b/pkg/app/relay/addEvent.go similarity index 83% rename from app/relay/addEvent.go rename to pkg/app/relay/addEvent.go index efe11b7..361b282 100644 --- a/app/relay/addEvent.go +++ b/pkg/app/relay/addEvent.go @@ -3,14 +3,13 @@ package relay import ( "errors" "net/http" - "orly.dev/interfaces/relay" - "orly.dev/utils/normalize" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/interfaces/relay" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/protocol/socketapi" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/normalize" "strings" - - "orly.dev/encoders/event" - "orly.dev/interfaces/store" - "orly.dev/protocol/socketapi" - "orly.dev/utils/context" ) func (s *Server) AddEvent( diff --git a/app/relay/auth.go b/pkg/app/relay/auth.go similarity index 92% rename from app/relay/auth.go rename to pkg/app/relay/auth.go index 64793bc..9fda338 100644 --- a/app/relay/auth.go +++ b/pkg/app/relay/auth.go @@ -2,9 +2,9 @@ package relay import ( "net/http" - "orly.dev/utils/chk" - "orly.dev/utils/log" - "orly.dev/utils/lol" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" "strconv" "strings" ) diff --git a/app/relay/handleRelayinfo.go b/pkg/app/relay/handleRelayinfo.go similarity index 90% rename from app/relay/handleRelayinfo.go rename to pkg/app/relay/handleRelayinfo.go index 2bea4ad..4e30605 100644 --- a/app/relay/handleRelayinfo.go +++ b/pkg/app/relay/handleRelayinfo.go @@ -3,13 +3,12 @@ package relay import ( "encoding/json" "net/http" - "orly.dev/interfaces/relay" - "orly.dev/utils/chk" - "orly.dev/utils/log" - "orly.dev/version" + "orly.dev/pkg/interfaces/relay" + "orly.dev/pkg/protocol/relayinfo" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/version" "sort" - - "orly.dev/protocol/relayinfo" ) func (s *Server) handleRelayInfo(w http.ResponseWriter, r *http.Request) { diff --git a/app/relay/handleWebsocket.go b/pkg/app/relay/handleWebsocket.go similarity index 81% rename from app/relay/handleWebsocket.go rename to pkg/app/relay/handleWebsocket.go index 35132aa..5b78f27 100644 --- a/app/relay/handleWebsocket.go +++ b/pkg/app/relay/handleWebsocket.go @@ -2,8 +2,7 @@ package relay import ( "net/http" - - "orly.dev/protocol/socketapi" + "orly.dev/pkg/protocol/socketapi" ) func (s *Server) handleWebsocket(w http.ResponseWriter, r *http.Request) { diff --git a/app/relay/helpers/helpers.go b/pkg/app/relay/helpers/helpers.go similarity index 100% rename from app/relay/helpers/helpers.go rename to pkg/app/relay/helpers/helpers.go diff --git a/app/relay/options/options.go b/pkg/app/relay/options/options.go similarity index 96% rename from app/relay/options/options.go rename to pkg/app/relay/options/options.go index 5d48576..4ad53a1 100644 --- a/app/relay/options/options.go +++ b/pkg/app/relay/options/options.go @@ -6,7 +6,7 @@ package options import ( - "orly.dev/encoders/event" + "orly.dev/pkg/encoders/event" ) type SkipEventFunc func(*event.E) bool diff --git a/app/relay/publish/publisher.go b/pkg/app/relay/publish/publisher.go similarity index 91% rename from app/relay/publish/publisher.go rename to pkg/app/relay/publish/publisher.go index 05115cf..c95485e 100644 --- a/app/relay/publish/publisher.go +++ b/pkg/app/relay/publish/publisher.go @@ -4,8 +4,8 @@ package publish import ( - "orly.dev/encoders/event" - "orly.dev/interfaces/publisher" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/interfaces/publisher" ) // S is the control structure for the subscription management scheme. diff --git a/app/relay/server-impl.go b/pkg/app/relay/server-impl.go similarity index 72% rename from app/relay/server-impl.go rename to pkg/app/relay/server-impl.go index 1ee0a18..146c15f 100644 --- a/app/relay/server-impl.go +++ b/pkg/app/relay/server-impl.go @@ -1,11 +1,11 @@ package relay import ( - "orly.dev/app/relay/publish" - "orly.dev/interfaces/relay" - "orly.dev/interfaces/server" - "orly.dev/interfaces/store" - "orly.dev/utils/context" + "orly.dev/pkg/app/relay/publish" + "orly.dev/pkg/interfaces/relay" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/context" ) func (s *Server) Storage() store.I { return s.relay.Storage() } diff --git a/app/relay/server-publish.go b/pkg/app/relay/server-publish.go similarity index 92% rename from app/relay/server-publish.go rename to pkg/app/relay/server-publish.go index a1b0988..c8bdbbe 100644 --- a/app/relay/server-publish.go +++ b/pkg/app/relay/server-publish.go @@ -4,18 +4,17 @@ import ( "bytes" "errors" "fmt" - "orly.dev/encoders/tags" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - "orly.dev/utils/normalize" - - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/interfaces/store" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/normalize" ) // Publish processes and saves an event based on its type and rules. diff --git a/app/relay/server.go b/pkg/app/relay/server.go similarity index 89% rename from app/relay/server.go rename to pkg/app/relay/server.go index b4c8571..878b940 100644 --- a/app/relay/server.go +++ b/pkg/app/relay/server.go @@ -6,21 +6,20 @@ import ( "fmt" "net" "net/http" - "orly.dev/app/config" - "orly.dev/app/relay/helpers" - "orly.dev/app/relay/options" - "orly.dev/app/relay/publish" - "orly.dev/interfaces/relay" - "orly.dev/protocol/servemux" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/app/config" + "orly.dev/pkg/app/relay/helpers" + "orly.dev/pkg/app/relay/options" + "orly.dev/pkg/app/relay/publish" + "orly.dev/pkg/interfaces/relay" + "orly.dev/pkg/protocol/servemux" + "orly.dev/pkg/protocol/socketapi" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" "strconv" "time" "github.com/rs/cors" - - "orly.dev/protocol/socketapi" - "orly.dev/utils/context" ) type Server struct { diff --git a/app/relay/testrelay.go b/pkg/app/relay/testrelay.go similarity index 94% rename from app/relay/testrelay.go rename to pkg/app/relay/testrelay.go index bfcd87d..2afd92f 100644 --- a/app/relay/testrelay.go +++ b/pkg/app/relay/testrelay.go @@ -3,14 +3,13 @@ package relay import ( "io" "net/http" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/units" "testing" - - "orly.dev/encoders/event" - "orly.dev/encoders/eventid" - "orly.dev/encoders/filter" - "orly.dev/interfaces/store" - "orly.dev/utils/context" - "orly.dev/utils/units" ) func startTestRelay(c context.T, t *testing.T, tr *testRelay) *Server { diff --git a/app/resources.go b/pkg/app/resources.go similarity index 87% rename from app/resources.go rename to pkg/app/resources.go index d1a1dbe..2a03de2 100644 --- a/app/resources.go +++ b/pkg/app/resources.go @@ -1,12 +1,11 @@ package app import ( - "orly.dev/utils/log" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" "os" "runtime" "time" - - "orly.dev/utils/context" ) func MonitorResources(c context.T) { diff --git a/cmd/lerproxy/LICENSE b/pkg/cmd/lerproxy/LICENSE similarity index 100% rename from cmd/lerproxy/LICENSE rename to pkg/cmd/lerproxy/LICENSE diff --git a/cmd/lerproxy/README.md b/pkg/cmd/lerproxy/README.md similarity index 100% rename from cmd/lerproxy/README.md rename to pkg/cmd/lerproxy/README.md diff --git a/cmd/lerproxy/buf/bufpool.go b/pkg/cmd/lerproxy/buf/bufpool.go similarity index 100% rename from cmd/lerproxy/buf/bufpool.go rename to pkg/cmd/lerproxy/buf/bufpool.go diff --git a/cmd/lerproxy/hsts/proxy.go b/pkg/cmd/lerproxy/hsts/proxy.go similarity index 100% rename from cmd/lerproxy/hsts/proxy.go rename to pkg/cmd/lerproxy/hsts/proxy.go diff --git a/cmd/lerproxy/main.go b/pkg/cmd/lerproxy/main.go similarity index 97% rename from cmd/lerproxy/main.go rename to pkg/cmd/lerproxy/main.go index f30bbd0..5b8827e 100644 --- a/cmd/lerproxy/main.go +++ b/pkg/cmd/lerproxy/main.go @@ -14,8 +14,14 @@ import ( "net/http" "net/http/httputil" "net/url" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/cmd/lerproxy/buf" + "orly.dev/pkg/cmd/lerproxy/hsts" + "orly.dev/pkg/cmd/lerproxy/reverse" + "orly.dev/pkg/cmd/lerproxy/tcpkeepalive" + "orly.dev/pkg/cmd/lerproxy/util" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" "os" "os/signal" "path/filepath" @@ -27,13 +33,6 @@ import ( "github.com/alexflint/go-arg" "golang.org/x/crypto/acme/autocert" "golang.org/x/sync/errgroup" - - "orly.dev/cmd/lerproxy/buf" - "orly.dev/cmd/lerproxy/hsts" - "orly.dev/cmd/lerproxy/reverse" - "orly.dev/cmd/lerproxy/tcpkeepalive" - "orly.dev/cmd/lerproxy/util" - "orly.dev/utils/context" ) type runArgs struct { diff --git a/cmd/lerproxy/reverse/proxy.go b/pkg/cmd/lerproxy/reverse/proxy.go similarity index 94% rename from cmd/lerproxy/reverse/proxy.go rename to pkg/cmd/lerproxy/reverse/proxy.go index 5eacf00..104b090 100644 --- a/cmd/lerproxy/reverse/proxy.go +++ b/pkg/cmd/lerproxy/reverse/proxy.go @@ -6,9 +6,8 @@ import ( "net/http" "net/http/httputil" "net/url" - "orly.dev/utils/log" - - "orly.dev/cmd/lerproxy/util" + "orly.dev/pkg/cmd/lerproxy/util" + "orly.dev/pkg/utils/log" ) // NewSingleHostReverseProxy is a copy of httputil.NewSingleHostReverseProxy diff --git a/cmd/lerproxy/tcpkeepalive/listener.go b/pkg/cmd/lerproxy/tcpkeepalive/listener.go similarity index 93% rename from cmd/lerproxy/tcpkeepalive/listener.go rename to pkg/cmd/lerproxy/tcpkeepalive/listener.go index 9f226a0..48e22d8 100644 --- a/cmd/lerproxy/tcpkeepalive/listener.go +++ b/pkg/cmd/lerproxy/tcpkeepalive/listener.go @@ -4,10 +4,9 @@ package tcpkeepalive import ( "net" - "orly.dev/utils/chk" + "orly.dev/pkg/cmd/lerproxy/timeout" + "orly.dev/pkg/utils/chk" "time" - - "orly.dev/cmd/lerproxy/timeout" ) // Period can be changed prior to opening a Listener to alter its' diff --git a/cmd/lerproxy/timeout/conn.go b/pkg/cmd/lerproxy/timeout/conn.go similarity index 96% rename from cmd/lerproxy/timeout/conn.go rename to pkg/cmd/lerproxy/timeout/conn.go index 7966a74..fc8be7a 100644 --- a/cmd/lerproxy/timeout/conn.go +++ b/pkg/cmd/lerproxy/timeout/conn.go @@ -4,7 +4,7 @@ package timeout import ( "net" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "time" ) diff --git a/cmd/lerproxy/util/u.go b/pkg/cmd/lerproxy/util/u.go similarity index 100% rename from cmd/lerproxy/util/u.go rename to pkg/cmd/lerproxy/util/u.go diff --git a/cmd/nauth/main.go b/pkg/cmd/nauth/main.go similarity index 89% rename from cmd/nauth/main.go rename to pkg/cmd/nauth/main.go index 4e8645c..788b11a 100644 --- a/cmd/nauth/main.go +++ b/pkg/cmd/nauth/main.go @@ -3,16 +3,15 @@ package main import ( "encoding/base64" "fmt" - "orly.dev/crypto/p256k" - "orly.dev/encoders/bech32encoding" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/bech32encoding" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/protocol/httpauth" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" "os" "time" - - "orly.dev/interfaces/signer" - "orly.dev/protocol/httpauth" ) const secEnv = "NOSTR_SECRET_KEY" diff --git a/cmd/nurl/main.go b/pkg/cmd/nurl/main.go similarity index 93% rename from cmd/nurl/main.go rename to pkg/cmd/nurl/main.go index af6fdfb..e84f559 100644 --- a/cmd/nurl/main.go +++ b/pkg/cmd/nurl/main.go @@ -8,18 +8,17 @@ import ( "io" "net/http" "net/url" - "orly.dev/crypto/p256k" - "orly.dev/crypto/sha256" - "orly.dev/encoders/bech32encoding" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - realy_lol "orly.dev/version" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/bech32encoding" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/protocol/httpauth" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" + realy_lol "orly.dev/pkg/version" "os" - - "orly.dev/encoders/hex" - "orly.dev/interfaces/signer" - "orly.dev/protocol/httpauth" ) const secEnv = "NOSTR_SECRET_KEY" diff --git a/cmd/vainstr/LICENSE b/pkg/cmd/vainstr/LICENSE similarity index 100% rename from cmd/vainstr/LICENSE rename to pkg/cmd/vainstr/LICENSE diff --git a/cmd/vainstr/README.md b/pkg/cmd/vainstr/README.md similarity index 100% rename from cmd/vainstr/README.md rename to pkg/cmd/vainstr/README.md diff --git a/cmd/vainstr/main.go b/pkg/cmd/vainstr/main.go similarity index 91% rename from cmd/vainstr/main.go rename to pkg/cmd/vainstr/main.go index b63d3aa..c4a5318 100644 --- a/cmd/vainstr/main.go +++ b/pkg/cmd/vainstr/main.go @@ -6,13 +6,15 @@ import ( "bytes" "encoding/hex" "fmt" - "orly.dev/crypto/ec/bech32" - "orly.dev/crypto/ec/schnorr" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/encoders/bech32encoding" - "orly.dev/utils/chk" - "orly.dev/utils/interrupt" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/ec/bech32" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/bech32encoding" + "orly.dev/pkg/utils/atomic" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/interrupt" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/qu" "os" "runtime" "strings" @@ -20,9 +22,6 @@ import ( "time" "github.com/alexflint/go-arg" - - "orly.dev/utils/atomic" - "orly.dev/utils/qu" ) var prefix = append(bech32encoding.PubHRP, '1') @@ -34,9 +33,9 @@ const ( ) type Result struct { - sec *secp256k2.SecretKey + sec *secp256k1.SecretKey npub []byte - pub *secp256k2.PublicKey + pub *secp256k1.PublicKey } var args struct { @@ -219,11 +218,11 @@ out: // GenKeyPair creates a fresh new key pair using the entropy source used by // crypto/rand (ie, /dev/random on posix systems). func GenKeyPair() ( - sec *secp256k2.SecretKey, - pub *secp256k2.PublicKey, err error, + sec *secp256k1.SecretKey, + pub *secp256k1.PublicKey, err error, ) { - sec, err = secp256k2.GenerateSecretKey() + sec, err = secp256k1.GenerateSecretKey() if err != nil { err = fmt.Errorf("error generating key: %s", err) return diff --git a/crypto/ec/LICENSE b/pkg/crypto/ec/LICENSE similarity index 100% rename from crypto/ec/LICENSE rename to pkg/crypto/ec/LICENSE diff --git a/crypto/ec/README.md b/pkg/crypto/ec/README.md similarity index 100% rename from crypto/ec/README.md rename to pkg/crypto/ec/README.md diff --git a/crypto/ec/base58/LICENSE b/pkg/crypto/ec/base58/LICENSE similarity index 100% rename from crypto/ec/base58/LICENSE rename to pkg/crypto/ec/base58/LICENSE diff --git a/crypto/ec/base58/README.md b/pkg/crypto/ec/base58/README.md similarity index 100% rename from crypto/ec/base58/README.md rename to pkg/crypto/ec/base58/README.md diff --git a/crypto/ec/base58/alphabet.go b/pkg/crypto/ec/base58/alphabet.go similarity index 100% rename from crypto/ec/base58/alphabet.go rename to pkg/crypto/ec/base58/alphabet.go diff --git a/crypto/ec/base58/base58.go b/pkg/crypto/ec/base58/base58.go similarity index 100% rename from crypto/ec/base58/base58.go rename to pkg/crypto/ec/base58/base58.go diff --git a/crypto/ec/base58/base58_test.go b/pkg/crypto/ec/base58/base58_test.go similarity index 99% rename from crypto/ec/base58/base58_test.go rename to pkg/crypto/ec/base58/base58_test.go index 2d51c4a..1bf6e00 100644 --- a/crypto/ec/base58/base58_test.go +++ b/pkg/crypto/ec/base58/base58_test.go @@ -7,7 +7,7 @@ package base58_test import ( "bytes" "encoding/hex" - "orly.dev/crypto/ec/base58" + "orly.dev/pkg/crypto/ec/base58" "testing" ) diff --git a/crypto/ec/base58/base58bench_test.go b/pkg/crypto/ec/base58/base58bench_test.go similarity index 96% rename from crypto/ec/base58/base58bench_test.go rename to pkg/crypto/ec/base58/base58bench_test.go index 6a4ee96..9a2ba8e 100644 --- a/crypto/ec/base58/base58bench_test.go +++ b/pkg/crypto/ec/base58/base58bench_test.go @@ -6,7 +6,7 @@ package base58_test import ( "bytes" - "orly.dev/crypto/ec/base58" + "orly.dev/pkg/crypto/ec/base58" "testing" ) diff --git a/crypto/ec/base58/base58check.go b/pkg/crypto/ec/base58/base58check.go similarity index 98% rename from crypto/ec/base58/base58check.go rename to pkg/crypto/ec/base58/base58check.go index 1d9140c..131c5ab 100644 --- a/crypto/ec/base58/base58check.go +++ b/pkg/crypto/ec/base58/base58check.go @@ -6,7 +6,7 @@ package base58 import ( "errors" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/sha256" ) // ErrChecksum indicates that the checksum of a check-encoded string does not verify against diff --git a/crypto/ec/base58/base58check_test.go b/pkg/crypto/ec/base58/base58check_test.go similarity index 98% rename from crypto/ec/base58/base58check_test.go rename to pkg/crypto/ec/base58/base58check_test.go index 5bb3ab0..f13169a 100644 --- a/crypto/ec/base58/base58check_test.go +++ b/pkg/crypto/ec/base58/base58check_test.go @@ -5,7 +5,7 @@ package base58_test import ( - "orly.dev/crypto/ec/base58" + "orly.dev/pkg/crypto/ec/base58" "testing" ) diff --git a/crypto/ec/base58/cov_report.sh b/pkg/crypto/ec/base58/cov_report.sh similarity index 100% rename from crypto/ec/base58/cov_report.sh rename to pkg/crypto/ec/base58/cov_report.sh diff --git a/crypto/ec/base58/doc.go b/pkg/crypto/ec/base58/doc.go similarity index 100% rename from crypto/ec/base58/doc.go rename to pkg/crypto/ec/base58/doc.go diff --git a/crypto/ec/base58/example_test.go b/pkg/crypto/ec/base58/example_test.go similarity index 88% rename from crypto/ec/base58/example_test.go rename to pkg/crypto/ec/base58/example_test.go index d32edff..9befb8d 100644 --- a/crypto/ec/base58/example_test.go +++ b/pkg/crypto/ec/base58/example_test.go @@ -6,14 +6,14 @@ package base58_test import ( "fmt" - base59 "orly.dev/crypto/ec/base58" + "orly.dev/pkg/crypto/ec/base58" ) // This example demonstrates how to decode modified base58 encoded data. func ExampleDecode() { // Decode example modified base58 encoded data. encoded := "25JnwSn7XKfNQ" - decoded := base59.Decode(encoded) + decoded := base58.Decode(encoded) // Show the decoded data. fmt.Println("Decoded Data:", string(decoded)) @@ -27,7 +27,7 @@ func ExampleDecode() { func ExampleEncode() { // Encode example data with the modified base58 encoding scheme. data := []byte("Test data") - encoded := base59.Encode(data) + encoded := base58.Encode(data) // Show the encoded data. fmt.Println("Encoded Data:", encoded) @@ -40,7 +40,7 @@ func ExampleEncode() { func ExampleCheckDecode() { // Decode an example Base58Check encoded data. encoded := "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" - decoded, version, err := base59.CheckDecode(encoded) + decoded, version, err := base58.CheckDecode(encoded) if err != nil { fmt.Println(err) return @@ -60,7 +60,7 @@ func ExampleCheckDecode() { func ExampleCheckEncode() { // Encode example data with the Base58Check encoding scheme. data := []byte("Test data") - encoded := base59.CheckEncode(data, 0) + encoded := base58.CheckEncode(data, 0) // Show the encoded data. fmt.Println("Encoded Data:", encoded) diff --git a/crypto/ec/base58/genalphabet.go b/pkg/crypto/ec/base58/genalphabet.go similarity index 100% rename from crypto/ec/base58/genalphabet.go rename to pkg/crypto/ec/base58/genalphabet.go diff --git a/crypto/ec/bech32/README.md b/pkg/crypto/ec/bech32/README.md similarity index 100% rename from crypto/ec/bech32/README.md rename to pkg/crypto/ec/bech32/README.md diff --git a/crypto/ec/bech32/bech32.go b/pkg/crypto/ec/bech32/bech32.go similarity index 100% rename from crypto/ec/bech32/bech32.go rename to pkg/crypto/ec/bech32/bech32.go diff --git a/crypto/ec/bech32/bech32_test.go b/pkg/crypto/ec/bech32/bech32_test.go similarity index 99% rename from crypto/ec/bech32/bech32_test.go rename to pkg/crypto/ec/bech32/bech32_test.go index a1c8b92..b3e8b4d 100644 --- a/crypto/ec/bech32/bech32_test.go +++ b/pkg/crypto/ec/bech32/bech32_test.go @@ -52,7 +52,7 @@ func TestBech32(t *testing.T) { { "split1cheo2y9e2w", ErrNonCharsetChar('o'), - }, // invalid character (o) in data part + }, // invalid character (o) in data part {"split1a2y9w", ErrInvalidSeparatorIndex(5)}, // too short data part { "1checkupstagehandshakeupstreamerranterredcaperred2y9e3w", diff --git a/crypto/ec/bech32/doc.go b/pkg/crypto/ec/bech32/doc.go similarity index 100% rename from crypto/ec/bech32/doc.go rename to pkg/crypto/ec/bech32/doc.go diff --git a/crypto/ec/bech32/error.go b/pkg/crypto/ec/bech32/error.go similarity index 100% rename from crypto/ec/bech32/error.go rename to pkg/crypto/ec/bech32/error.go diff --git a/crypto/ec/bech32/example_test.go b/pkg/crypto/ec/bech32/example_test.go similarity index 100% rename from crypto/ec/bech32/example_test.go rename to pkg/crypto/ec/bech32/example_test.go diff --git a/crypto/ec/bech32/version.go b/pkg/crypto/ec/bech32/version.go similarity index 100% rename from crypto/ec/bech32/version.go rename to pkg/crypto/ec/bech32/version.go diff --git a/crypto/ec/bench_test.go b/pkg/crypto/ec/bench_test.go similarity index 98% rename from crypto/ec/bench_test.go rename to pkg/crypto/ec/bench_test.go index fca8cbd..67ef9e3 100644 --- a/crypto/ec/bench_test.go +++ b/pkg/crypto/ec/bench_test.go @@ -6,10 +6,9 @@ package btcec import ( "math/big" - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" "testing" - - "orly.dev/encoders/hex" ) // setHex decodes the passed big-endian hex string into the internal field value diff --git a/crypto/ec/btcec.go b/pkg/crypto/ec/btcec.go similarity index 87% rename from crypto/ec/btcec.go rename to pkg/crypto/ec/btcec.go index ff126c7..347b0d3 100644 --- a/crypto/ec/btcec.go +++ b/pkg/crypto/ec/btcec.go @@ -20,31 +20,31 @@ package btcec // reverse the transform than to operate in affine coordinates. import ( - secp256k2 "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // KoblitzCurve provides an implementation for secp256k1 that fits the ECC // Curve interface from crypto/elliptic. -type KoblitzCurve = secp256k2.KoblitzCurve +type KoblitzCurve = secp256k1.KoblitzCurve // S256 returns a Curve which implements secp256k1. func S256() *KoblitzCurve { - return secp256k2.S256() + return secp256k1.S256() } // CurveParams contains the parameters for the secp256k1 curve. -type CurveParams = secp256k2.CurveParams +type CurveParams = secp256k1.CurveParams // Params returns the secp256k1 curve parameters for convenience. func Params() *CurveParams { - return secp256k2.Params() + return secp256k1.Params() } // Generator returns the public key at the Generator Point. func Generator() *PublicKey { var ( result JacobianPoint - k secp256k2.ModNScalar + k secp256k1.ModNScalar ) k.SetInt(1) ScalarBaseMultNonConst(&k, &result) diff --git a/crypto/ec/btcec_test.go b/pkg/crypto/ec/btcec_test.go similarity index 100% rename from crypto/ec/btcec_test.go rename to pkg/crypto/ec/btcec_test.go diff --git a/crypto/ec/chaincfg/deployment_time_frame.go b/pkg/crypto/ec/chaincfg/deployment_time_frame.go similarity index 99% rename from crypto/ec/chaincfg/deployment_time_frame.go rename to pkg/crypto/ec/chaincfg/deployment_time_frame.go index 1239027..46f41c9 100644 --- a/crypto/ec/chaincfg/deployment_time_frame.go +++ b/pkg/crypto/ec/chaincfg/deployment_time_frame.go @@ -2,7 +2,7 @@ package chaincfg import ( "fmt" - "orly.dev/crypto/ec/wire" + "orly.dev/pkg/crypto/ec/wire" "time" ) diff --git a/crypto/ec/chaincfg/genesis.go b/pkg/crypto/ec/chaincfg/genesis.go similarity index 91% rename from crypto/ec/chaincfg/genesis.go rename to pkg/crypto/ec/chaincfg/genesis.go index 032d3d6..1213fd6 100644 --- a/crypto/ec/chaincfg/genesis.go +++ b/pkg/crypto/ec/chaincfg/genesis.go @@ -1,19 +1,19 @@ package chaincfg import ( - "orly.dev/crypto/ec/chainhash" - wire2 "orly.dev/crypto/ec/wire" + "orly.dev/pkg/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/wire" "time" ) var ( // genesisCoinbaseTx is the coinbase transaction for the genesis blocks for // the main network, regression test network, and test network (version 3). - genesisCoinbaseTx = wire2.MsgTx{ + genesisCoinbaseTx = wire.MsgTx{ Version: 1, - TxIn: []*wire2.TxIn{ + TxIn: []*wire.TxIn{ { - PreviousOutPoint: wire2.OutPoint{ + PreviousOutPoint: wire.OutPoint{ Hash: chainhash.Hash{}, Index: 0xffffffff, }, @@ -41,7 +41,7 @@ var ( Sequence: 0xffffffff, }, }, - TxOut: []*wire2.TxOut{ + TxOut: []*wire.TxOut{ { Value: 0x12a05f200, PkScript: []byte{ @@ -92,8 +92,8 @@ var ( // genesisBlock defines // genesisBlock defines the genesis block of the block chain which serves as the // public transaction ledger for the main network. - genesisBlock = wire2.MsgBlock{ - Header: wire2.BlockHeader{ + genesisBlock = wire.MsgBlock{ + Header: wire.BlockHeader{ Version: 1, PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 MerkleRoot: genesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b @@ -104,6 +104,6 @@ var ( Bits: 0x1d00ffff, // 486604799 [00000000ffff0000000000000000000000000000000000000000000000000000] Nonce: 0x7c2bac1d, // 2083236893 }, - Transactions: []*wire2.MsgTx{&genesisCoinbaseTx}, + Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, } ) diff --git a/crypto/ec/chaincfg/params.go b/pkg/crypto/ec/chaincfg/params.go similarity index 99% rename from crypto/ec/chaincfg/params.go rename to pkg/crypto/ec/chaincfg/params.go index 175c4e9..c97e8b7 100644 --- a/crypto/ec/chaincfg/params.go +++ b/pkg/crypto/ec/chaincfg/params.go @@ -3,8 +3,8 @@ package chaincfg import ( "math/big" - "orly.dev/crypto/ec/chainhash" - wire2 "orly.dev/crypto/ec/wire" + "orly.dev/pkg/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/wire" "time" ) @@ -113,7 +113,7 @@ type Params struct { Name string // Net defines the magic bytes used to identify the network. - Net wire2.BitcoinNet + Net wire.BitcoinNet // DefaultPort defines the default peer-to-peer port for the network. DefaultPort string @@ -123,7 +123,7 @@ type Params struct { DNSSeeds []DNSSeed // GenesisBlock defines the first block of the chain. - GenesisBlock *wire2.MsgBlock + GenesisBlock *wire.MsgBlock // GenesisHash is the starting block hash. GenesisHash *chainhash.Hash @@ -231,7 +231,7 @@ type Params struct { // MainNetParams defines the network parameters for the main Bitcoin network. var MainNetParams = Params{ Name: "mainnet", - Net: wire2.MainNet, + Net: wire.MainNet, DefaultPort: "8333", DNSSeeds: []DNSSeed{ {"seed.bitcoin.sipa.be", true}, diff --git a/crypto/ec/chainhash/README.md b/pkg/crypto/ec/chainhash/README.md similarity index 100% rename from crypto/ec/chainhash/README.md rename to pkg/crypto/ec/chainhash/README.md diff --git a/crypto/ec/chainhash/doc.go b/pkg/crypto/ec/chainhash/doc.go similarity index 100% rename from crypto/ec/chainhash/doc.go rename to pkg/crypto/ec/chainhash/doc.go diff --git a/crypto/ec/chainhash/hash.go b/pkg/crypto/ec/chainhash/hash.go similarity index 99% rename from crypto/ec/chainhash/hash.go rename to pkg/crypto/ec/chainhash/hash.go index edc3e07..5fab9f1 100644 --- a/crypto/ec/chainhash/hash.go +++ b/pkg/crypto/ec/chainhash/hash.go @@ -8,9 +8,8 @@ package chainhash import ( "encoding/json" "fmt" - "orly.dev/crypto/sha256" - - "orly.dev/encoders/hex" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" ) const ( diff --git a/crypto/ec/chainhash/hash_test.go b/pkg/crypto/ec/chainhash/hash_test.go similarity index 100% rename from crypto/ec/chainhash/hash_test.go rename to pkg/crypto/ec/chainhash/hash_test.go diff --git a/crypto/ec/chainhash/hashfuncs.go b/pkg/crypto/ec/chainhash/hashfuncs.go similarity index 96% rename from crypto/ec/chainhash/hashfuncs.go rename to pkg/crypto/ec/chainhash/hashfuncs.go index 271e63a..23e072e 100644 --- a/crypto/ec/chainhash/hashfuncs.go +++ b/pkg/crypto/ec/chainhash/hashfuncs.go @@ -6,7 +6,7 @@ package chainhash import ( - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/sha256" ) // HashB calculates hash(b) and returns the resulting bytes. diff --git a/crypto/ec/chainhash/hashfuncs_test.go b/pkg/crypto/ec/chainhash/hashfuncs_test.go similarity index 100% rename from crypto/ec/chainhash/hashfuncs_test.go rename to pkg/crypto/ec/chainhash/hashfuncs_test.go diff --git a/crypto/ec/ciphering.go b/pkg/crypto/ec/ciphering.go similarity index 93% rename from crypto/ec/ciphering.go rename to pkg/crypto/ec/ciphering.go index aabf23a..219ffab 100644 --- a/crypto/ec/ciphering.go +++ b/pkg/crypto/ec/ciphering.go @@ -5,7 +5,7 @@ package btcec import ( - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // GenerateSharedSecret generates a shared secret based on a secret key and a diff --git a/crypto/ec/ciphering_test.go b/pkg/crypto/ec/ciphering_test.go similarity index 100% rename from crypto/ec/ciphering_test.go rename to pkg/crypto/ec/ciphering_test.go diff --git a/crypto/ec/curve.go b/pkg/crypto/ec/curve.go similarity index 88% rename from crypto/ec/curve.go rename to pkg/crypto/ec/curve.go index f8ef77d..d1fb6bb 100644 --- a/crypto/ec/curve.go +++ b/pkg/crypto/ec/curve.go @@ -5,12 +5,12 @@ package btcec import ( "fmt" - secp256k2 "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // JacobianPoint is an element of the group formed by the secp256k1 curve in // Jacobian projective coordinates and thus represents a point on the curve. -type JacobianPoint = secp256k2.JacobianPoint +type JacobianPoint = secp256k1.JacobianPoint // infinityPoint is the jacobian representation of the point at infinity. var infinityPoint JacobianPoint @@ -18,13 +18,13 @@ var infinityPoint JacobianPoint // MakeJacobianPoint returns a Jacobian point with the provided X, Y, and Z // coordinates. func MakeJacobianPoint(x, y, z *FieldVal) JacobianPoint { - return secp256k2.MakeJacobianPoint(x, y, z) + return secp256k1.MakeJacobianPoint(x, y, z) } // AddNonConst adds the passed Jacobian points together and stores the result // in the provided result param in *non-constant* time. func AddNonConst(p1, p2, result *JacobianPoint) { - secp256k2.AddNonConst(p1, p2, result) + secp256k1.AddNonConst(p1, p2, result) } // DecompressY attempts to calculate the Y coordinate for the given X @@ -35,7 +35,7 @@ func AddNonConst(p1, p2, result *JacobianPoint) { // The magnitude of the provided X coordinate field val must be a max of 8 for // a correct result. The resulting Y field val will have a max magnitude of 2. func DecompressY(x *FieldVal, odd bool, resultY *FieldVal) bool { - return secp256k2.DecompressY(x, odd, resultY) + return secp256k1.DecompressY(x, odd, resultY) } // DoubleNonConst doubles the passed Jacobian point and stores the result in @@ -44,7 +44,7 @@ func DecompressY(x *FieldVal, odd bool, resultY *FieldVal) bool { // NOTE: The point must be normalized for this function to return the correct // result. The resulting point will be normalized. func DoubleNonConst(p, result *JacobianPoint) { - secp256k2.DoubleNonConst(p, result) + secp256k1.DoubleNonConst(p, result) } // ScalarBaseMultNonConst multiplies k*G where G is the base point of the group @@ -53,7 +53,7 @@ func DoubleNonConst(p, result *JacobianPoint) { // // NOTE: The resulting point will be normalized. func ScalarBaseMultNonConst(k *ModNScalar, result *JacobianPoint) { - secp256k2.ScalarBaseMultNonConst(k, result) + secp256k1.ScalarBaseMultNonConst(k, result) } // ScalarMultNonConst multiplies k*P where k is a big endian integer modulo the @@ -63,7 +63,7 @@ func ScalarBaseMultNonConst(k *ModNScalar, result *JacobianPoint) { // NOTE: The point must be normalized for this function to return the correct // result. The resulting point will be normalized. func ScalarMultNonConst(k *ModNScalar, point, result *JacobianPoint) { - secp256k2.ScalarMultNonConst(k, point, result) + secp256k1.ScalarMultNonConst(k, point, result) } // ParseJacobian parses a byte slice point as a secp256k1.Publickey and returns the @@ -76,12 +76,12 @@ func ParseJacobian(point []byte) (JacobianPoint, error) { "invalid nonce: invalid length: %v", len(point), ) - return JacobianPoint{}, makeError(secp256k2.ErrPubKeyInvalidLen, str) + return JacobianPoint{}, makeError(secp256k1.ErrPubKeyInvalidLen, str) } if point[0] == 0x00 { return infinityPoint, nil } - noncePk, err := secp256k2.ParsePubKey(point) + noncePk, err := secp256k1.ParsePubKey(point) if err != nil { return JacobianPoint{}, err } diff --git a/crypto/ec/doc.go b/pkg/crypto/ec/doc.go similarity index 100% rename from crypto/ec/doc.go rename to pkg/crypto/ec/doc.go diff --git a/crypto/ec/ecdsa/README.md b/pkg/crypto/ec/ecdsa/README.md similarity index 100% rename from crypto/ec/ecdsa/README.md rename to pkg/crypto/ec/ecdsa/README.md diff --git a/crypto/ec/ecdsa/bench_test.go b/pkg/crypto/ec/ecdsa/bench_test.go similarity index 92% rename from crypto/ec/ecdsa/bench_test.go rename to pkg/crypto/ec/ecdsa/bench_test.go index 7c4a1aa..2e61ab0 100644 --- a/crypto/ec/ecdsa/bench_test.go +++ b/pkg/crypto/ec/ecdsa/bench_test.go @@ -6,22 +6,21 @@ package ecdsa import ( - secp256k2 "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" "testing" - - "orly.dev/encoders/hex" ) // hexToModNScalar converts the passed hex string into a ModNScalar and will // panic if there is an error. This is only provided for the hard-coded // constants so errors in the source code can be detected. It will only (and // must only) be called with hard-coded values. -func hexToModNScalar(s string) *secp256k2.ModNScalar { +func hexToModNScalar(s string) *secp256k1.ModNScalar { b, err := hex.Dec(s) if err != nil { panic("invalid hex in source file: " + s) } - var scalar secp256k2.ModNScalar + var scalar secp256k1.ModNScalar if overflow := scalar.SetByteSlice(b); overflow { panic("hex in source file overflows mod N scalar: " + s) } @@ -32,12 +31,12 @@ func hexToModNScalar(s string) *secp256k2.ModNScalar { // if there is an error. This is only provided for the hard-coded constants so // errors in the source code can be detected. It will only (and must only) be // called with hard-coded values. -func hexToFieldVal(s string) *secp256k2.FieldVal { +func hexToFieldVal(s string) *secp256k1.FieldVal { b, err := hex.Dec(s) if err != nil { panic("invalid hex in source file: " + s) } - var f secp256k2.FieldVal + var f secp256k1.FieldVal if overflow := f.SetByteSlice(b); overflow { panic("hex in source file overflows mod P: " + s) } @@ -49,7 +48,7 @@ func hexToFieldVal(s string) *secp256k2.FieldVal { func BenchmarkSigVerify(b *testing.B) { // Randomly generated keypair. // Secret key: 9e0699c91ca1e3b7e3c9ba71eb71c89890872be97576010fe593fbf3fd57e66d - pubKey := secp256k2.NewPublicKey( + pubKey := secp256k1.NewPublicKey( hexToFieldVal("d2e670a19c6d753d1a6d8b20bd045df8a08fb162cf508956c31268c6d81ffdab"), hexToFieldVal("ab65528eefbb8057aa85d597258a3fbd481a24633bc9b47a9aa045c91371de52"), ) @@ -74,7 +73,7 @@ func BenchmarkSigVerify(b *testing.B) { func BenchmarkSign(b *testing.B) { // Randomly generated keypair. d := hexToModNScalar("9e0699c91ca1e3b7e3c9ba71eb71c89890872be97576010fe593fbf3fd57e66d") - secKey := secp256k2.NewSecretKey(d) + secKey := secp256k1.NewSecretKey(d) // blake256 of by{0x01, 0x02, 0x03, 0x04}. msgHash := hexToBytes("c301ba9de5d6053caad9f5eb46523f007702add2c62fa39de03146a36b8026b7") b.ReportAllocs() @@ -114,9 +113,9 @@ func BenchmarkNonceRFC6979(b *testing.B) { msgHash := hexToBytes("c301ba9de5d6053caad9f5eb46523f007702add2c62fa39de03146a36b8026b7") b.ReportAllocs() b.ResetTimer() - var noElideNonce *secp256k2.ModNScalar + var noElideNonce *secp256k1.ModNScalar for i := 0; i < b.N; i++ { - noElideNonce = secp256k2.NonceRFC6979(secKey, msgHash, nil, nil, 0) + noElideNonce = secp256k1.NonceRFC6979(secKey, msgHash, nil, nil, 0) } _ = noElideNonce } @@ -125,7 +124,7 @@ func BenchmarkNonceRFC6979(b *testing.B) { // signature for a message. func BenchmarkSignCompact(b *testing.B) { d := hexToModNScalar("9e0699c91ca1e3b7e3c9ba71eb71c89890872be97576010fe593fbf3fd57e66d") - secKey := secp256k2.NewSecretKey(d) + secKey := secp256k1.NewSecretKey(d) // blake256 of by{0x01, 0x02, 0x03, 0x04}. msgHash := hexToBytes("c301ba9de5d6053caad9f5eb46523f007702add2c62fa39de03146a36b8026b7") b.ReportAllocs() @@ -139,7 +138,7 @@ func BenchmarkSignCompact(b *testing.B) { // given a compact signature and message. func BenchmarkRecoverCompact(b *testing.B) { // Secret key: 9e0699c91ca1e3b7e3c9ba71eb71c89890872be97576010fe593fbf3fd57e66d - wantPubKey := secp256k2.NewPublicKey( + wantPubKey := secp256k1.NewPublicKey( hexToFieldVal("d2e670a19c6d753d1a6d8b20bd045df8a08fb162cf508956c31268c6d81ffdab"), hexToFieldVal("ab65528eefbb8057aa85d597258a3fbd481a24633bc9b47a9aa045c91371de52"), ) diff --git a/crypto/ec/ecdsa/doc.go b/pkg/crypto/ec/ecdsa/doc.go similarity index 100% rename from crypto/ec/ecdsa/doc.go rename to pkg/crypto/ec/ecdsa/doc.go diff --git a/crypto/ec/ecdsa/error.go b/pkg/crypto/ec/ecdsa/error.go similarity index 100% rename from crypto/ec/ecdsa/error.go rename to pkg/crypto/ec/ecdsa/error.go diff --git a/crypto/ec/ecdsa/error_test.go b/pkg/crypto/ec/ecdsa/error_test.go similarity index 100% rename from crypto/ec/ecdsa/error_test.go rename to pkg/crypto/ec/ecdsa/error_test.go diff --git a/crypto/ec/ecdsa/example_test.go b/pkg/crypto/ec/ecdsa/example_test.go similarity index 100% rename from crypto/ec/ecdsa/example_test.go rename to pkg/crypto/ec/ecdsa/example_test.go diff --git a/crypto/ec/ecdsa/signature.go b/pkg/crypto/ec/ecdsa/signature.go similarity index 93% rename from crypto/ec/ecdsa/signature.go rename to pkg/crypto/ec/ecdsa/signature.go index 93f2982..951f954 100644 --- a/crypto/ec/ecdsa/signature.go +++ b/pkg/crypto/ec/ecdsa/signature.go @@ -7,7 +7,7 @@ package ecdsa import ( "fmt" - secp256k2 "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // References: @@ -27,9 +27,9 @@ var ( // orderAsFieldVal is the order of the secp256k1 curve group stored as a // field value. It is provided here to avoid the need to create it multiple // times. - orderAsFieldVal = func() secp256k2.FieldVal { - var f secp256k2.FieldVal - f.SetByteSlice(secp256k2.Params().N.Bytes()) + orderAsFieldVal = func() secp256k1.FieldVal { + var f secp256k1.FieldVal + f.SetByteSlice(secp256k1.Params().N.Bytes()) return f }() ) @@ -47,12 +47,12 @@ const ( // Signature is a type representing an ECDSA signature. type Signature struct { - r secp256k2.ModNScalar - s secp256k2.ModNScalar + r secp256k1.ModNScalar + s secp256k1.ModNScalar } // NewSignature instantiates a new signature given some r and s values. -func NewSignature(r, s *secp256k2.ModNScalar) *Signature { +func NewSignature(r, s *secp256k1.ModNScalar) *Signature { return &Signature{*r, *s} } @@ -86,7 +86,7 @@ func (sig *Signature) Serialize() []byte { // order of the group because both S and its negation are valid signatures // modulo the order, so this forces a consistent choice to reduce signature // malleability. - sigS := new(secp256k2.ModNScalar).Set(&sig.s) + sigS := new(secp256k1.ModNScalar).Set(&sig.s) if sigS.IsOverHalfOrder() { sigS.Negate() } @@ -135,27 +135,27 @@ func zeroArray32(b *[32]byte) { // Note that a bool is not used here because it is not possible in Go to convert // from a bool to numeric value in constant time and many constant-time // operations require a numeric value. -func fieldToModNScalar(v *secp256k2.FieldVal) (secp256k2.ModNScalar, uint32) { +func fieldToModNScalar(v *secp256k1.FieldVal) (secp256k1.ModNScalar, uint32) { var buf [32]byte v.PutBytes(&buf) - var s secp256k2.ModNScalar + var s secp256k1.ModNScalar overflow := s.SetBytes(&buf) zeroArray32(&buf) return s, overflow } // modNScalarToField converts a scalar modulo the group order to a field value. -func modNScalarToField(v *secp256k2.ModNScalar) secp256k2.FieldVal { +func modNScalarToField(v *secp256k1.ModNScalar) secp256k1.FieldVal { var buf [32]byte v.PutBytes(&buf) - var fv secp256k2.FieldVal + var fv secp256k1.FieldVal fv.SetBytes(&buf) return fv } // Verify returns whether the signature is valid for the provided hash // and secp256k1 public key. -func (sig *Signature) Verify(hash []byte, pubKey *secp256k2.PublicKey) bool { +func (sig *Signature) Verify(hash []byte, pubKey *secp256k1.PublicKey) bool { // The algorithm for verifying an ECDSA signature is given as algorithm 4.30 // in [GECC]. // @@ -221,26 +221,26 @@ func (sig *Signature) Verify(hash []byte, pubKey *secp256k2.PublicKey) bool { // Step 2. // // e = H(m) - var e secp256k2.ModNScalar + var e secp256k1.ModNScalar e.SetByteSlice(hash) // Step 3. // // w = S^-1 mod N - w := new(secp256k2.ModNScalar).InverseValNonConst(&sig.s) + w := new(secp256k1.ModNScalar).InverseValNonConst(&sig.s) // Step 4. // // u1 = e * w mod N // u2 = R * w mod N - u1 := new(secp256k2.ModNScalar).Mul2(&e, w) - u2 := new(secp256k2.ModNScalar).Mul2(&sig.r, w) + u1 := new(secp256k1.ModNScalar).Mul2(&e, w) + u2 := new(secp256k1.ModNScalar).Mul2(&sig.r, w) // Step 5. // // X = u1G + u2Q - var X, Q, u1G, u2Q secp256k2.JacobianPoint + var X, Q, u1G, u2Q secp256k1.JacobianPoint pubKey.AsJacobian(&Q) - secp256k2.ScalarBaseMultNonConst(u1, &u1G) - secp256k2.ScalarMultNonConst(u2, &Q, &u2Q) - secp256k2.AddNonConst(&u1G, &u2Q, &X) + secp256k1.ScalarBaseMultNonConst(u1, &u1G) + secp256k1.ScalarMultNonConst(u2, &Q, &u2Q) + secp256k1.AddNonConst(&u1G, &u2Q, &X) // Step 6. // // Fail if X is the point at infinity @@ -250,12 +250,12 @@ func (sig *Signature) Verify(hash []byte, pubKey *secp256k2.PublicKey) bool { // Step 7. // // z = (X.z)^2 mod P (X.z is the z coordinate of X) - z := new(secp256k2.FieldVal).SquareVal(&X.Z) + z := new(secp256k1.FieldVal).SquareVal(&X.Z) // Step 8. // // Verified if R * z == X.x (mod P) sigRModP := modNScalarToField(&sig.r) - result := new(secp256k2.FieldVal).Mul2(&sigRModP, z).Normalize() + result := new(secp256k1.FieldVal).Mul2(&sigRModP, z).Normalize() if result.Equals(&X.X) { return true } @@ -470,7 +470,7 @@ func ParseDERSignature(sig []byte) (*Signature, error) { // R must be in the range [1, N-1]. Notice the check for the maximum number // of bytes is required because SetByteSlice truncates as noted in its // comment so it could otherwise fail to detect the overflow. - var r secp256k2.ModNScalar + var r secp256k1.ModNScalar if len(rBytes) > 32 { str := "invalid signature: R is larger than 256 bits" return nil, signatureError(ErrSigRTooBig, str) @@ -491,7 +491,7 @@ func ParseDERSignature(sig []byte) (*Signature, error) { // S must be in the range [1, N-1]. Notice the check for the maximum number // of bytes is required because SetByteSlice truncates as noted in its // comment so it could otherwise fail to detect the overflow. - var s secp256k2.ModNScalar + var s secp256k1.ModNScalar if len(sBytes) > 32 { str := "invalid signature: S is larger than 256 bits" return nil, signatureError(ErrSigSTooBig, str) @@ -519,7 +519,7 @@ func ParseDERSignature(sig []byte) (*Signature, error) { // signing logic. It differs in that it accepts a nonce to use when signing and // may not successfully produce a valid signature for the given nonce. It is // primarily separated for testing purposes. -func sign(secKey, nonce *secp256k2.ModNScalar, hash []byte) ( +func sign(secKey, nonce *secp256k1.ModNScalar, hash []byte) ( *Signature, byte, bool, ) { @@ -562,8 +562,8 @@ func sign(secKey, nonce *secp256k2.ModNScalar, hash []byte) ( // // Note that the point must be in affine coordinates. k := nonce - var kG secp256k2.JacobianPoint - secp256k2.ScalarBaseMultNonConst(k, &kG) + var kG secp256k1.JacobianPoint + secp256k1.ScalarBaseMultNonConst(k, &kG) kG.ToAffine() // Step 3. // @@ -601,15 +601,15 @@ func sign(secKey, nonce *secp256k2.ModNScalar, hash []byte) ( // // Note that this actually sets e = H(m) mod N which is correct since // it is only used in step 5 which itself is mod N. - var e secp256k2.ModNScalar + var e secp256k1.ModNScalar e.SetByteSlice(hash) // Step 5 with modification B. // // s = k^-1(e + dr) mod N // Repeat from step 1 if s = 0 // s = -s if s > N/2 - kinv := new(secp256k2.ModNScalar).InverseValNonConst(k) - s := new(secp256k2.ModNScalar).Mul2(secKey, &r).Add(&e).Mul(kinv) + kinv := new(secp256k1.ModNScalar).InverseValNonConst(k) + s := new(secp256k1.ModNScalar).Mul2(secKey, &r).Add(&e).Mul(kinv) if s.IsZero() { return nil, 0, false } @@ -630,7 +630,7 @@ func sign(secKey, nonce *secp256k2.ModNScalar, hash []byte) ( // signRFC6979 generates a deterministic ECDSA signature according to RFC 6979 // and BIP0062 and returns it along with an additional public key recovery code // for efficiently recovering the public key from the signature. -func signRFC6979(secKey *secp256k2.SecretKey, hash []byte) ( +func signRFC6979(secKey *secp256k1.SecretKey, hash []byte) ( *Signature, byte, ) { @@ -673,7 +673,7 @@ func signRFC6979(secKey *secp256k2.SecretKey, hash []byte) ( // // Generate a deterministic nonce in [1, N-1] parameterized by the // secret key, message being signed, and iteration count. - k := secp256k2.NonceRFC6979(secKeyBytes[:], hash, nil, nil, iteration) + k := secp256k1.NonceRFC6979(secKeyBytes[:], hash, nil, nil, iteration) // Steps 2-6. sig, pubKeyRecoveryCode, success := sign(secKeyScalar, k, hash) k.Zero() @@ -689,7 +689,7 @@ func signRFC6979(secKey *secp256k2.SecretKey, hash []byte) ( // secret key. The produced signature is deterministic (same message and same // key yield the same signature) and canonical in accordance with RFC6979 and // BIP0062. -func Sign(key *secp256k2.SecretKey, hash []byte) *Signature { +func Sign(key *secp256k1.SecretKey, hash []byte) *Signature { signature, _ := signRFC6979(key, hash) return signature } @@ -730,7 +730,7 @@ const ( // The compact sig recovery code is the value 27 + public key recovery code + 4 // if the compact signature was created with a compressed public key. func SignCompact( - key *secp256k2.SecretKey, hash []byte, + key *secp256k1.SecretKey, hash []byte, isCompressedKey bool, ) []byte { // Create the signature and associated pubkey recovery code and calculate @@ -753,7 +753,7 @@ func SignCompact( // the signature matches then the recovered public key will be returned as well // as a boolean indicating whether or not the original key was compressed. func RecoverCompact(signature, hash []byte) ( - *secp256k2.PublicKey, bool, error, + *secp256k1.PublicKey, bool, error, ) { // The following is very loosely based on the information and algorithm that // describes recovering a public key from and ECDSA signature in section @@ -850,7 +850,7 @@ func RecoverCompact(signature, hash []byte) ( // Parse and validate the R and S signature components. // // Fail if r and s are not in [1, N-1]. - var r, s secp256k2.ModNScalar + var r, s secp256k1.ModNScalar if overflow := r.SetByteSlice(signature[1:33]); overflow { str := "invalid signature: R >= group order" return nil, false, signatureError(ErrSigRTooBig, str) @@ -902,40 +902,40 @@ func RecoverCompact(signature, hash []byte) ( // coord originally came from a random point on the curve which means there // must be a Y coord that satisfies the equation for a valid signature. oddY := pubKeyRecoveryCode&pubKeyRecoveryCodeOddnessBit != 0 - var y secp256k2.FieldVal - if valid := secp256k2.DecompressY(&fieldR, oddY, &y); !valid { + var y secp256k1.FieldVal + if valid := secp256k1.DecompressY(&fieldR, oddY, &y); !valid { str := "invalid signature: not for a valid curve point" return nil, false, signatureError(ErrPointNotOnCurve, str) } // Step 5. // // X = (r, y) - var X secp256k2.JacobianPoint + var X secp256k1.JacobianPoint X.X.Set(fieldR.Normalize()) X.Y.Set(y.Normalize()) X.Z.SetInt(1) // Step 6. // // e = H(m) mod N - var e secp256k2.ModNScalar + var e secp256k1.ModNScalar e.SetByteSlice(hash) // Step 7. // // w = r^-1 mod N - w := new(secp256k2.ModNScalar).InverseValNonConst(&r) + w := new(secp256k1.ModNScalar).InverseValNonConst(&r) // Step 8. // // u1 = -(e * w) mod N // u2 = s * w mod N - u1 := new(secp256k2.ModNScalar).Mul2(&e, w).Negate() - u2 := new(secp256k2.ModNScalar).Mul2(&s, w) + u1 := new(secp256k1.ModNScalar).Mul2(&e, w).Negate() + u2 := new(secp256k1.ModNScalar).Mul2(&s, w) // Step 9. // // Q = u1G + u2X - var Q, u1G, u2X secp256k2.JacobianPoint - secp256k2.ScalarBaseMultNonConst(u1, &u1G) - secp256k2.ScalarMultNonConst(u2, &X, &u2X) - secp256k2.AddNonConst(&u1G, &u2X, &Q) + var Q, u1G, u2X secp256k1.JacobianPoint + secp256k1.ScalarBaseMultNonConst(u1, &u1G) + secp256k1.ScalarMultNonConst(u2, &X, &u2X) + secp256k1.AddNonConst(&u1G, &u2X, &Q) // Step 10. // // Fail if Q is the point at infinity. @@ -948,6 +948,6 @@ func RecoverCompact(signature, hash []byte) ( } // Notice that the public key is in affine coordinates. Q.ToAffine() - pubKey := secp256k2.NewPublicKey(&Q.X, &Q.Y) + pubKey := secp256k1.NewPublicKey(&Q.X, &Q.Y) return pubKey, wasCompressed, nil } diff --git a/crypto/ec/ecdsa/signature_test.go b/pkg/crypto/ec/ecdsa/signature_test.go similarity index 99% rename from crypto/ec/ecdsa/signature_test.go rename to pkg/crypto/ec/ecdsa/signature_test.go index e2aac8d..e867523 100644 --- a/crypto/ec/ecdsa/signature_test.go +++ b/pkg/crypto/ec/ecdsa/signature_test.go @@ -12,12 +12,11 @@ import ( "bytes" "errors" "math/rand" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "testing" "time" - - "orly.dev/encoders/hex" ) // hexToBytes converts the passed hex string into bytes and will panic if there @@ -321,8 +320,8 @@ func TestSignatureSerialize(t *testing.T) { }, { "zero signature", &Signature{ - r: *new(secp256k2.ModNScalar).SetInt(0), - s: *new(secp256k2.ModNScalar).SetInt(0), + r: *new(secp256k1.ModNScalar).SetInt(0), + s: *new(secp256k1.ModNScalar).SetInt(0), }, hexToBytes("3006020100020100"), }, @@ -657,9 +656,9 @@ func TestSignAndVerifyRandom(t *testing.T) { if _, err := rng.Read(buf[:]); chk.T(err) { t.Fatalf("failed to read random secret key: %v", err) } - var secKeyScalar secp256k2.ModNScalar + var secKeyScalar secp256k1.ModNScalar secKeyScalar.SetBytes(&buf) - secKey := secp256k2.NewSecretKey(&secKeyScalar) + secKey := secp256k1.NewSecretKey(&secKeyScalar) // Generate a random hash to sign. var hash [32]byte if _, err := rng.Read(hash[:]); chk.T(err) { @@ -798,7 +797,7 @@ func TestVerifyFailures(t *testing.T) { s := hexToModNScalar(test.s) sig := NewSignature(r, s) // Ensure the verification is NOT successful. - pubKey := secp256k2.NewSecretKey(secKey).PubKey() + pubKey := secp256k1.NewSecretKey(secKey).PubKey() if sig.Verify(hash, pubKey) { t.Errorf( "%s: unexpected success for invalid signature: %x", @@ -1074,9 +1073,9 @@ func TestSignAndRecoverCompactRandom(t *testing.T) { if _, err := rng.Read(buf[:]); chk.T(err) { t.Fatalf("failed to read random secret key: %v", err) } - var secKeyScalar secp256k2.ModNScalar + var secKeyScalar secp256k1.ModNScalar secKeyScalar.SetBytes(&buf) - secKey := secp256k2.NewSecretKey(&secKeyScalar) + secKey := secp256k1.NewSecretKey(&secKeyScalar) wantPubKey := secKey.PubKey() // Generate a random hash to sign. var hash [32]byte diff --git a/crypto/ec/ecdsa/util_test.go b/pkg/crypto/ec/ecdsa/util_test.go similarity index 80% rename from crypto/ec/ecdsa/util_test.go rename to pkg/crypto/ec/ecdsa/util_test.go index d619498..1855e45 100644 --- a/crypto/ec/ecdsa/util_test.go +++ b/pkg/crypto/ec/ecdsa/util_test.go @@ -1,7 +1,7 @@ package ecdsa_test import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var ( diff --git a/crypto/ec/error.go b/pkg/crypto/ec/error.go similarity index 95% rename from crypto/ec/error.go rename to pkg/crypto/ec/error.go index 6b9a9fc..e8b25c1 100644 --- a/crypto/ec/error.go +++ b/pkg/crypto/ec/error.go @@ -4,7 +4,7 @@ package btcec import ( - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // Error identifies an error related to public key cryptography using a diff --git a/crypto/ec/field.go b/pkg/crypto/ec/field.go similarity index 98% rename from crypto/ec/field.go rename to pkg/crypto/ec/field.go index 79efad1..4c3f82f 100644 --- a/crypto/ec/field.go +++ b/pkg/crypto/ec/field.go @@ -1,7 +1,7 @@ package btcec import ( - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // FieldVal implements optimized fixed-precision arithmetic over the secp256k1 diff --git a/crypto/ec/field_test.go b/pkg/crypto/ec/field_test.go similarity index 99% rename from crypto/ec/field_test.go rename to pkg/crypto/ec/field_test.go index 67ee51e..cd2f778 100644 --- a/crypto/ec/field_test.go +++ b/pkg/crypto/ec/field_test.go @@ -7,10 +7,9 @@ package btcec import ( "math/rand" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/hex" ) // TestIsZero ensures that checking if a field IsZero works as expected. diff --git a/crypto/ec/fuzz_test.go b/pkg/crypto/ec/fuzz_test.go similarity index 97% rename from crypto/ec/fuzz_test.go rename to pkg/crypto/ec/fuzz_test.go index 37faf67..7561738 100644 --- a/crypto/ec/fuzz_test.go +++ b/pkg/crypto/ec/fuzz_test.go @@ -9,9 +9,8 @@ package btcec import ( + "orly.dev/pkg/encoders/hex" "testing" - - "orly.dev/encoders/hex" ) func FuzzParsePubKey(f *testing.F) { diff --git a/crypto/ec/modnscalar.go b/pkg/crypto/ec/modnscalar.go similarity index 94% rename from crypto/ec/modnscalar.go rename to pkg/crypto/ec/modnscalar.go index afb28bf..8c4e79a 100644 --- a/crypto/ec/modnscalar.go +++ b/pkg/crypto/ec/modnscalar.go @@ -4,7 +4,7 @@ package btcec import ( - secp256k2 "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // ModNScalar implements optimized 256-bit constant-time fixed-precision @@ -24,7 +24,7 @@ import ( // that should typically be avoided when possible as conversion to big.Ints // requires allocations, is not constant time, and is slower when working modulo // the group order. -type ModNScalar = secp256k2.ModNScalar +type ModNScalar = secp256k1.ModNScalar // NonceRFC6979 generates a nonce deterministically according to RFC 6979 using // HMAC-SHA256 for the hashing function. It takes a 32-byte hash as an input @@ -43,7 +43,7 @@ func NonceRFC6979( extraIterations uint32, ) *ModNScalar { - return secp256k2.NonceRFC6979( + return secp256k1.NonceRFC6979( privKey, hash, extra, version, extraIterations, ) diff --git a/crypto/ec/musig2/bench_test.go b/pkg/crypto/ec/musig2/bench_test.go similarity index 98% rename from crypto/ec/musig2/bench_test.go rename to pkg/crypto/ec/musig2/bench_test.go index e7ad75a..6c968ec 100644 --- a/crypto/ec/musig2/bench_test.go +++ b/pkg/crypto/ec/musig2/bench_test.go @@ -6,11 +6,10 @@ package musig2 import ( "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/hex" "testing" - - "orly.dev/encoders/hex" ) var ( @@ -247,7 +246,7 @@ func BenchmarkAggregateNonces(b *testing.B) { } } -var testKey *btcec.PublicKey +var testKey *btcec.btcec // BenchmarkAggregateKeys benchmarks how long it takes to aggregate public // keys. diff --git a/crypto/ec/musig2/context.go b/pkg/crypto/ec/musig2/context.go similarity index 99% rename from crypto/ec/musig2/context.go rename to pkg/crypto/ec/musig2/context.go index 0c950be..6aede64 100644 --- a/crypto/ec/musig2/context.go +++ b/pkg/crypto/ec/musig2/context.go @@ -4,9 +4,9 @@ package musig2 import ( "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/schnorr" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/utils/chk" ) var ( @@ -103,7 +103,7 @@ type contextOptions struct { // h_tapTweak(internalKey) as there is no true script root. bip86Tweak bool // keySet is the complete set of signers for this context. - keySet []*btcec.PublicKey + keySet []*btcec.btcec // numSigners is the total number of signers that will eventually be a // part of the context. numSigners int diff --git a/crypto/ec/musig2/data/key_agg_vectors.json b/pkg/crypto/ec/musig2/data/key_agg_vectors.json similarity index 100% rename from crypto/ec/musig2/data/key_agg_vectors.json rename to pkg/crypto/ec/musig2/data/key_agg_vectors.json diff --git a/crypto/ec/musig2/data/key_sort_vectors.json b/pkg/crypto/ec/musig2/data/key_sort_vectors.json similarity index 100% rename from crypto/ec/musig2/data/key_sort_vectors.json rename to pkg/crypto/ec/musig2/data/key_sort_vectors.json diff --git a/crypto/ec/musig2/data/nonce_agg_vectors.json b/pkg/crypto/ec/musig2/data/nonce_agg_vectors.json similarity index 100% rename from crypto/ec/musig2/data/nonce_agg_vectors.json rename to pkg/crypto/ec/musig2/data/nonce_agg_vectors.json diff --git a/crypto/ec/musig2/data/nonce_gen_vectors.json b/pkg/crypto/ec/musig2/data/nonce_gen_vectors.json similarity index 100% rename from crypto/ec/musig2/data/nonce_gen_vectors.json rename to pkg/crypto/ec/musig2/data/nonce_gen_vectors.json diff --git a/crypto/ec/musig2/data/sig_agg_vectors.json b/pkg/crypto/ec/musig2/data/sig_agg_vectors.json similarity index 100% rename from crypto/ec/musig2/data/sig_agg_vectors.json rename to pkg/crypto/ec/musig2/data/sig_agg_vectors.json diff --git a/crypto/ec/musig2/data/sign_verify_vectors.json b/pkg/crypto/ec/musig2/data/sign_verify_vectors.json similarity index 100% rename from crypto/ec/musig2/data/sign_verify_vectors.json rename to pkg/crypto/ec/musig2/data/sign_verify_vectors.json diff --git a/crypto/ec/musig2/data/tweak_vectors.json b/pkg/crypto/ec/musig2/data/tweak_vectors.json similarity index 100% rename from crypto/ec/musig2/data/tweak_vectors.json rename to pkg/crypto/ec/musig2/data/tweak_vectors.json diff --git a/crypto/ec/musig2/doc.go b/pkg/crypto/ec/musig2/doc.go similarity index 100% rename from crypto/ec/musig2/doc.go rename to pkg/crypto/ec/musig2/doc.go diff --git a/crypto/ec/musig2/keys.go b/pkg/crypto/ec/musig2/keys.go similarity index 98% rename from crypto/ec/musig2/keys.go rename to pkg/crypto/ec/musig2/keys.go index 1704156..aedcbad 100644 --- a/crypto/ec/musig2/keys.go +++ b/pkg/crypto/ec/musig2/keys.go @@ -5,10 +5,10 @@ package musig2 import ( "bytes" "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/chainhash" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" "sort" ) @@ -237,7 +237,7 @@ func hasEvenY(pJ btcec.btcec) bool { // by the parity factor. The xOnly bool specifies if this is to be an x-only // tweak or not. func tweakKey( - keyJ btcec.JacobianPoint, parityAcc btcec.ModNScalar, + keyJ btcec.btcec, parityAcc btcec.ModNScalar, tweak [32]byte, tweakAcc btcec.ModNScalar, xOnly bool, diff --git a/crypto/ec/musig2/keys_test.go b/pkg/crypto/ec/musig2/keys_test.go similarity index 98% rename from crypto/ec/musig2/keys_test.go rename to pkg/crypto/ec/musig2/keys_test.go index 5dc46f2..e202836 100644 --- a/crypto/ec/musig2/keys_test.go +++ b/pkg/crypto/ec/musig2/keys_test.go @@ -5,17 +5,16 @@ package musig2 import ( "encoding/json" "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" "os" "path" "strings" "testing" "github.com/stretchr/testify/require" - - "orly.dev/encoders/hex" ) const ( @@ -42,7 +41,7 @@ func TestMusig2KeySort(t *testing.T) { require.NoError(t, json.Unmarshal(testVectorBytes, &testCase)) keys := make([]*btcec.btcec, len(testCase.PubKeys)) for i, keyStr := range testCase.PubKeys { - pubKey, err := btcec.ParsePubKey(mustParseHex(keyStr)) + pubKey, err := btcec.btcec.ParsePubKey(mustParseHex(keyStr)) require.NoError(t, err) keys[i] = pubKey } diff --git a/crypto/ec/musig2/musig2_test.go b/pkg/crypto/ec/musig2/musig2_test.go similarity index 98% rename from crypto/ec/musig2/musig2_test.go rename to pkg/crypto/ec/musig2/musig2_test.go index ec7d16f..91c827b 100644 --- a/crypto/ec/musig2/musig2_test.go +++ b/pkg/crypto/ec/musig2/musig2_test.go @@ -5,12 +5,11 @@ package musig2 import ( "errors" "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" "sync" "testing" - - "orly.dev/encoders/hex" ) const ( @@ -34,7 +33,7 @@ type signer struct { type signerSet []signer -func (s signerSet) keys() []*btcec.PublicKey { +func (s signerSet) keys() []*btcec.btcec { keys := make([]*btcec.PublicKey, len(s)) for i := 0; i < len(s); i++ { keys[i] = s[i].pubKey diff --git a/crypto/ec/musig2/nonces.go b/pkg/crypto/ec/musig2/nonces.go similarity index 98% rename from crypto/ec/musig2/nonces.go rename to pkg/crypto/ec/musig2/nonces.go index f7bce46..151ae67 100644 --- a/crypto/ec/musig2/nonces.go +++ b/pkg/crypto/ec/musig2/nonces.go @@ -8,10 +8,10 @@ import ( "encoding/binary" "errors" "io" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/chainhash" - "orly.dev/crypto/ec/schnorr" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/utils/chk" ) const ( @@ -60,7 +60,7 @@ func secNonceToPubNonce(secNonce [SecNonceSize]byte) [PubNonceSize]byte { k1Mod.SetByteSlice(secNonce[:btcec.SecKeyBytesLen]) k2Mod.SetByteSlice(secNonce[btcec.SecKeyBytesLen:]) var r1, r2 btcec.btcec - btcec.ScalarBaseMultNonConst(&k1Mod, &r1) + btcec.btcec.ScalarBaseMultNonConst(&k1Mod, &r1) btcec.ScalarBaseMultNonConst(&k2Mod, &r2) // Next, we'll convert the key in jacobian format to a normal public // key expressed in affine coordinates. diff --git a/crypto/ec/musig2/nonces_test.go b/pkg/crypto/ec/musig2/nonces_test.go similarity index 96% rename from crypto/ec/musig2/nonces_test.go rename to pkg/crypto/ec/musig2/nonces_test.go index bdcb5b4..3e1054c 100644 --- a/crypto/ec/musig2/nonces_test.go +++ b/pkg/crypto/ec/musig2/nonces_test.go @@ -6,13 +6,12 @@ import ( "bytes" "encoding/json" "fmt" + "orly.dev/pkg/encoders/hex" "os" "path" "testing" "github.com/stretchr/testify/require" - - "orly.dev/encoders/hex" ) type nonceGenTestCase struct { @@ -88,9 +87,9 @@ type nonceAggValidCase struct { } type nonceAggInvalidCase struct { - Indices []int `json:"pnonce_indices"` - Error nonceAggError `json:"error"` - Comment string `json:"comment"` + Indices []int `json:"pnonce_indices"` + Error nonceAggError `json:"error"` + Comment string `json:"comment"` ExpectedErr string `json:"btcec_err"` } diff --git a/crypto/ec/musig2/sign.go b/pkg/crypto/ec/musig2/sign.go similarity index 96% rename from crypto/ec/musig2/sign.go rename to pkg/crypto/ec/musig2/sign.go index 5d464d6..a9b2380 100644 --- a/crypto/ec/musig2/sign.go +++ b/pkg/crypto/ec/musig2/sign.go @@ -6,11 +6,11 @@ import ( "bytes" "fmt" "io" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/chainhash" - schnorr2 "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/utils/chk" ) var ( @@ -205,7 +205,7 @@ func computeSigningNonce( combinedNonce [PubNonceSize]byte, combinedKey *btcec.PublicKey, msg [32]byte, ) ( - *btcec.JacobianPoint, *btcec.ModNScalar, error, + *btcec.btcec, *btcec.ModNScalar, error, ) { // Next we'll compute the value b, that blinds our second public @@ -216,7 +216,7 @@ func computeSigningNonce( nonceBlinder btcec.ModNScalar ) nonceMsgBuf.Write(combinedNonce[:]) - nonceMsgBuf.Write(schnorr2.SerializePubKey(combinedKey)) + nonceMsgBuf.Write(schnorr.SerializePubKey(combinedKey)) nonceMsgBuf.Write(msg[:]) nonceBlindHash := chainhash.TaggedHash( NonceBlindTag, nonceMsgBuf.Bytes(), @@ -379,8 +379,8 @@ func Sign( // nonce, combined public key and also the message: // * e = H(tag=ChallengeHashTag, R || Q || m) mod n var challengeMsg bytes.Buffer - challengeMsg.Write(schnorr2.SerializePubKey(nonceKey)) - challengeMsg.Write(schnorr2.SerializePubKey(combinedKey.FinalKey)) + challengeMsg.Write(schnorr.SerializePubKey(nonceKey)) + challengeMsg.Write(schnorr.SerializePubKey(combinedKey.FinalKey)) challengeMsg.Write(msg[:]) challengeBytes := chainhash.TaggedHash( ChallengeHashTag, challengeMsg.Bytes(), @@ -490,7 +490,7 @@ func verifyPartialSig( nonceBlinder btcec.ModNScalar ) nonceMsgBuf.Write(combinedNonce[:]) - nonceMsgBuf.Write(schnorr2.SerializePubKey(combinedKey.FinalKey)) + nonceMsgBuf.Write(schnorr.SerializePubKey(combinedKey.FinalKey)) nonceMsgBuf.Write(msg[:]) nonceBlindHash := chainhash.TaggedHash(NonceBlindTag, nonceMsgBuf.Bytes()) nonceBlinder.SetByteSlice(nonceBlindHash[:]) @@ -558,13 +558,13 @@ func verifyPartialSig( // * e = H(tag=ChallengeHashTag, R || Q || m) mod n var challengeMsg bytes.Buffer challengeMsg.Write( - schnorr2.SerializePubKey( + schnorr.SerializePubKey( btcec.NewPublicKey( &nonce.X, &nonce.Y, ), ), ) - challengeMsg.Write(schnorr2.SerializePubKey(combinedKey.FinalKey)) + challengeMsg.Write(schnorr.SerializePubKey(combinedKey.FinalKey)) challengeMsg.Write(msg[:]) challengeBytes := chainhash.TaggedHash( ChallengeHashTag, challengeMsg.Bytes(), @@ -706,7 +706,7 @@ func CombineSigs( combinedNonce *btcec.PublicKey, partialSigs []*PartialSignature, combineOpts ...CombineOption, -) *schnorr2.Signature { +) *schnorr.Signature { // First, parse the set of optional combine options. opts := defaultCombineOptions() @@ -730,8 +730,8 @@ func CombineSigs( // nonce and combined public key. // * e = H(tag=ChallengeHashTag, R || Q || m) mod n var challengeMsg bytes.Buffer - challengeMsg.Write(schnorr2.SerializePubKey(combinedNonce)) - challengeMsg.Write(schnorr2.SerializePubKey(opts.combinedKey)) + challengeMsg.Write(schnorr.SerializePubKey(combinedNonce)) + challengeMsg.Write(schnorr.SerializePubKey(opts.combinedKey)) challengeMsg.Write(opts.msg[:]) challengeBytes := chainhash.TaggedHash( ChallengeHashTag, challengeMsg.Bytes(), @@ -761,5 +761,5 @@ func CombineSigs( combinedNonce.AsJacobian(&nonceJ) nonceJ.ToAffine() - return schnorr2.NewSignature(&nonceJ.X, &combinedSig) + return schnorr.NewSignature(&nonceJ.X, &combinedSig) } diff --git a/crypto/ec/musig2/sign_test.go b/pkg/crypto/ec/musig2/sign_test.go similarity index 98% rename from crypto/ec/musig2/sign_test.go rename to pkg/crypto/ec/musig2/sign_test.go index aa19b41..39771c2 100644 --- a/crypto/ec/musig2/sign_test.go +++ b/pkg/crypto/ec/musig2/sign_test.go @@ -6,16 +6,15 @@ import ( "bytes" "encoding/json" "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" "os" "path" "strings" "testing" "github.com/stretchr/testify/require" - - "orly.dev/encoders/hex" ) const ( @@ -81,7 +80,7 @@ func TestMusig2SignVerify(t *testing.T) { require.NoError(t, err) var testCases signVerifyTestVectors require.NoError(t, json.Unmarshal(testVectorBytes, &testCases)) - privKey, _ := btcec.SecKeyFromBytes(mustParseHex(testCases.SecKey)) + privKey, _ := btcec.btcec.SecKeyFromBytes(mustParseHex(testCases.SecKey)) for i, testCase := range testCases.ValidCases { testCase := testCase testName := fmt.Sprintf("valid_case_%v", i) diff --git a/crypto/ec/pubkey.go b/pkg/crypto/ec/pubkey.go similarity index 98% rename from crypto/ec/pubkey.go rename to pkg/crypto/ec/pubkey.go index c212b64..5038d4d 100644 --- a/crypto/ec/pubkey.go +++ b/pkg/crypto/ec/pubkey.go @@ -5,7 +5,7 @@ package btcec import ( - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // These constants define the lengths of serialized public keys. diff --git a/crypto/ec/pubkey_test.go b/pkg/crypto/ec/pubkey_test.go similarity index 100% rename from crypto/ec/pubkey_test.go rename to pkg/crypto/ec/pubkey_test.go diff --git a/crypto/ec/schnorr/bench_test.go b/pkg/crypto/ec/schnorr/bench_test.go similarity index 96% rename from crypto/ec/schnorr/bench_test.go rename to pkg/crypto/ec/schnorr/bench_test.go index 73a32aa..636819b 100644 --- a/crypto/ec/schnorr/bench_test.go +++ b/pkg/crypto/ec/schnorr/bench_test.go @@ -7,12 +7,11 @@ package schnorr import ( "math/big" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/secp256k1" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" "testing" - - "orly.dev/encoders/hex" ) // hexToBytes converts the passed hex string into bytes and will panic if there @@ -49,7 +48,7 @@ func hexToModNScalar(s string) *btcec.ModNScalar { // if there is an error. This is only provided for the hard-coded constants, so // errors in the source code can be detected. It will only (and must only) be // called with hard-coded values. -func hexToFieldVal(s string) *btcec.FieldVal { +func hexToFieldVal(s string) *btcec.btcec { b, err := hex.Dec(s) if err != nil { panic("invalid hex in source file: " + s) diff --git a/crypto/ec/schnorr/bip/bip-0340.mediawiki b/pkg/crypto/ec/schnorr/bip/bip-0340.mediawiki similarity index 100% rename from crypto/ec/schnorr/bip/bip-0340.mediawiki rename to pkg/crypto/ec/schnorr/bip/bip-0340.mediawiki diff --git a/crypto/ec/schnorr/bip/bip340/reference.py b/pkg/crypto/ec/schnorr/bip/bip340/reference.py similarity index 100% rename from crypto/ec/schnorr/bip/bip340/reference.py rename to pkg/crypto/ec/schnorr/bip/bip340/reference.py diff --git a/crypto/ec/schnorr/bip/bip340/test-vectors.csv b/pkg/crypto/ec/schnorr/bip/bip340/test-vectors.csv similarity index 100% rename from crypto/ec/schnorr/bip/bip340/test-vectors.csv rename to pkg/crypto/ec/schnorr/bip/bip340/test-vectors.csv diff --git a/crypto/ec/schnorr/bip/bip340/test-vectors.py b/pkg/crypto/ec/schnorr/bip/bip340/test-vectors.py similarity index 100% rename from crypto/ec/schnorr/bip/bip340/test-vectors.py rename to pkg/crypto/ec/schnorr/bip/bip340/test-vectors.py diff --git a/crypto/ec/schnorr/error.go b/pkg/crypto/ec/schnorr/error.go similarity index 100% rename from crypto/ec/schnorr/error.go rename to pkg/crypto/ec/schnorr/error.go diff --git a/crypto/ec/schnorr/pubkey.go b/pkg/crypto/ec/schnorr/pubkey.go similarity index 95% rename from crypto/ec/schnorr/pubkey.go rename to pkg/crypto/ec/schnorr/pubkey.go index 5cc0834..59477a5 100644 --- a/crypto/ec/schnorr/pubkey.go +++ b/pkg/crypto/ec/schnorr/pubkey.go @@ -7,8 +7,8 @@ package schnorr import ( "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/secp256k1" ) // These constants define the lengths of serialized public keys. diff --git a/crypto/ec/schnorr/schnorrdoc.go b/pkg/crypto/ec/schnorr/schnorrdoc.go similarity index 100% rename from crypto/ec/schnorr/schnorrdoc.go rename to pkg/crypto/ec/schnorr/schnorrdoc.go diff --git a/crypto/ec/schnorr/schnorrerror_test.go b/pkg/crypto/ec/schnorr/schnorrerror_test.go similarity index 100% rename from crypto/ec/schnorr/schnorrerror_test.go rename to pkg/crypto/ec/schnorr/schnorrerror_test.go diff --git a/crypto/ec/schnorr/signature.go b/pkg/crypto/ec/schnorr/signature.go similarity index 98% rename from crypto/ec/schnorr/signature.go rename to pkg/crypto/ec/schnorr/signature.go index 5a1055f..ff5131e 100644 --- a/crypto/ec/schnorr/signature.go +++ b/pkg/crypto/ec/schnorr/signature.go @@ -4,10 +4,10 @@ package schnorr import ( "fmt" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/chainhash" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/utils/chk" ) const ( @@ -444,7 +444,7 @@ func Sign( // // Negate d if P.y is odd. pubKeyBytes := pub.SerializeCompressed() - if pubKeyBytes[0] == secp256k2.PubKeyFormatCompressedOdd { + if pubKeyBytes[0] == secp256k1.PubKeyFormatCompressedOdd { privKeyScalar.Negate() } // At this point, we check to see if a CustomNonce has been passed in, and @@ -493,7 +493,7 @@ func Sign( privKeyScalar.PutBytes(&privKeyBytes) defer zeroArray(&privKeyBytes) for iteration := uint32(0); ; iteration++ { - var k *secp256k2.ModNScalar + var k *secp256k1.ModNScalar // Step 6-9. // // Use RFC6979 to generate a deterministic nonce k in [1, n-1] diff --git a/crypto/ec/schnorr/signature_test.go b/pkg/crypto/ec/schnorr/signature_test.go similarity index 98% rename from crypto/ec/schnorr/signature_test.go rename to pkg/crypto/ec/schnorr/signature_test.go index 0efd1c5..36dba0e 100644 --- a/crypto/ec/schnorr/signature_test.go +++ b/pkg/crypto/ec/schnorr/signature_test.go @@ -7,16 +7,15 @@ package schnorr import ( "errors" - "orly.dev/crypto/ec" - "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "strings" "testing" "testing/quick" "github.com/davecgh/go-spew/spew" - - "orly.dev/encoders/hex" ) type bip340Test struct { @@ -208,7 +207,7 @@ func TestSchnorrSign(t *testing.T) { continue } d := decodeHex(test.secretKey) - privKey, _ := btcec.SecKeyFromBytes(d) + privKey, _ := btcec.btcec.SecKeyFromBytes(d) var auxBytes [32]byte aux := decodeHex(test.auxRand) copy(auxBytes[:], aux) diff --git a/crypto/ec/sec2-v2.pdf b/pkg/crypto/ec/sec2-v2.pdf similarity index 100% rename from crypto/ec/sec2-v2.pdf rename to pkg/crypto/ec/sec2-v2.pdf diff --git a/crypto/ec/seckey.go b/pkg/crypto/ec/seckey.go similarity index 98% rename from crypto/ec/seckey.go rename to pkg/crypto/ec/seckey.go index 826f9c9..691e68b 100644 --- a/crypto/ec/seckey.go +++ b/pkg/crypto/ec/seckey.go @@ -5,7 +5,7 @@ package btcec import ( - "orly.dev/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/ec/secp256k1" ) // SecretKey wraps an ecdsa.SecretKey as a convenience mainly for signing things with the secret key without having to diff --git a/crypto/ec/secp256k1/LICENSE b/pkg/crypto/ec/secp256k1/LICENSE similarity index 100% rename from crypto/ec/secp256k1/LICENSE rename to pkg/crypto/ec/secp256k1/LICENSE diff --git a/crypto/ec/secp256k1/README.md b/pkg/crypto/ec/secp256k1/README.md similarity index 100% rename from crypto/ec/secp256k1/README.md rename to pkg/crypto/ec/secp256k1/README.md diff --git a/crypto/ec/secp256k1/bench_test.go b/pkg/crypto/ec/secp256k1/bench_test.go similarity index 100% rename from crypto/ec/secp256k1/bench_test.go rename to pkg/crypto/ec/secp256k1/bench_test.go diff --git a/crypto/ec/secp256k1/curve.go b/pkg/crypto/ec/secp256k1/curve.go similarity index 99% rename from crypto/ec/secp256k1/curve.go rename to pkg/crypto/ec/secp256k1/curve.go index b3898fe..0c77077 100644 --- a/crypto/ec/secp256k1/curve.go +++ b/pkg/crypto/ec/secp256k1/curve.go @@ -7,8 +7,7 @@ package secp256k1 import ( "math/bits" - - "orly.dev/encoders/hex" + "orly.dev/pkg/encoders/hex" ) // References: diff --git a/crypto/ec/secp256k1/curve_test.go b/pkg/crypto/ec/secp256k1/curve_test.go similarity index 99% rename from crypto/ec/secp256k1/curve_test.go rename to pkg/crypto/ec/secp256k1/curve_test.go index fe6667a..14f6779 100644 --- a/crypto/ec/secp256k1/curve_test.go +++ b/pkg/crypto/ec/secp256k1/curve_test.go @@ -10,7 +10,7 @@ import ( "math/big" "math/bits" "math/rand" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "testing" "time" ) diff --git a/crypto/ec/secp256k1/doc.go b/pkg/crypto/ec/secp256k1/doc.go similarity index 100% rename from crypto/ec/secp256k1/doc.go rename to pkg/crypto/ec/secp256k1/doc.go diff --git a/crypto/ec/secp256k1/ecdh.go b/pkg/crypto/ec/secp256k1/ecdh.go similarity index 100% rename from crypto/ec/secp256k1/ecdh.go rename to pkg/crypto/ec/secp256k1/ecdh.go diff --git a/crypto/ec/secp256k1/ecdh_test.go b/pkg/crypto/ec/secp256k1/ecdh_test.go similarity index 100% rename from crypto/ec/secp256k1/ecdh_test.go rename to pkg/crypto/ec/secp256k1/ecdh_test.go diff --git a/crypto/ec/secp256k1/ellipticadaptor.go b/pkg/crypto/ec/secp256k1/ellipticadaptor.go similarity index 100% rename from crypto/ec/secp256k1/ellipticadaptor.go rename to pkg/crypto/ec/secp256k1/ellipticadaptor.go diff --git a/crypto/ec/secp256k1/ellipticadaptor_bench_test.go b/pkg/crypto/ec/secp256k1/ellipticadaptor_bench_test.go similarity index 100% rename from crypto/ec/secp256k1/ellipticadaptor_bench_test.go rename to pkg/crypto/ec/secp256k1/ellipticadaptor_bench_test.go diff --git a/crypto/ec/secp256k1/ellipticadaptor_test.go b/pkg/crypto/ec/secp256k1/ellipticadaptor_test.go similarity index 99% rename from crypto/ec/secp256k1/ellipticadaptor_test.go rename to pkg/crypto/ec/secp256k1/ellipticadaptor_test.go index 16c241a..2a51bf7 100644 --- a/crypto/ec/secp256k1/ellipticadaptor_test.go +++ b/pkg/crypto/ec/secp256k1/ellipticadaptor_test.go @@ -7,7 +7,7 @@ package secp256k1 import ( "math/big" "math/rand" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "testing" "time" ) diff --git a/crypto/ec/secp256k1/error.go b/pkg/crypto/ec/secp256k1/error.go similarity index 100% rename from crypto/ec/secp256k1/error.go rename to pkg/crypto/ec/secp256k1/error.go diff --git a/crypto/ec/secp256k1/error_test.go b/pkg/crypto/ec/secp256k1/error_test.go similarity index 100% rename from crypto/ec/secp256k1/error_test.go rename to pkg/crypto/ec/secp256k1/error_test.go diff --git a/crypto/ec/secp256k1/example_test.go b/pkg/crypto/ec/secp256k1/example_test.go similarity index 90% rename from crypto/ec/secp256k1/example_test.go rename to pkg/crypto/ec/secp256k1/example_test.go index 0055847..7f04ae1 100644 --- a/crypto/ec/secp256k1/example_test.go +++ b/pkg/crypto/ec/secp256k1/example_test.go @@ -10,10 +10,9 @@ import ( "crypto/cipher" "encoding/binary" "fmt" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/crypto/sha256" - - "orly.dev/encoders/hex" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" ) // This example demonstrates use of GenerateSharedSecret to encrypt a message @@ -36,14 +35,14 @@ func Example_encryptDecryptMessage() { fmt.Println(err) return } - pubKey, err := secp256k2.ParsePubKey(pubKeyBytes) + pubKey, err := secp256k1.ParsePubKey(pubKeyBytes) if err != nil { fmt.Println(err) return } // Derive an ephemeral public/secret keypair for performing ECDHE with // the recipient. - ephemeralSecKey, err := secp256k2.GenerateSecretKey() + ephemeralSecKey, err := secp256k1.GenerateSecretKey() if err != nil { fmt.Println(err) return @@ -51,7 +50,7 @@ func Example_encryptDecryptMessage() { ephemeralPubKey := ephemeralSecKey.PubKey().SerializeCompressed() // Using ECDHE, derive a shared symmetric key for encryption of the plaintext. cipherKey := sha256.Sum256( - secp256k2.GenerateSharedSecret( + secp256k1.GenerateSharedSecret( ephemeralSecKey, pubKey, ), @@ -92,13 +91,13 @@ func Example_encryptDecryptMessage() { fmt.Println(err) return } - secKey := secp256k2.SecKeyFromBytes(pkBytes) + secKey := secp256k1.SecKeyFromBytes(pkBytes) // Read the sender's ephemeral public key from the start of the message. // Error handling for inappropriate pubkey lengths is elided here for // brevity. pubKeyLen := binary.LittleEndian.Uint32(ciphertext[:4]) senderPubKeyBytes := ciphertext[4 : 4+pubKeyLen] - senderPubKey, err := secp256k2.ParsePubKey(senderPubKeyBytes) + senderPubKey, err := secp256k1.ParsePubKey(senderPubKeyBytes) if err != nil { fmt.Println(err) return @@ -106,7 +105,7 @@ func Example_encryptDecryptMessage() { // Derive the key used to seal the message, this time from the // recipient's secret key and the sender's public key. recoveredCipherKey := sha256.Sum256( - secp256k2.GenerateSharedSecret( + secp256k1.GenerateSharedSecret( secKey, senderPubKey, ), diff --git a/crypto/ec/secp256k1/field.go b/pkg/crypto/ec/secp256k1/field.go similarity index 99% rename from crypto/ec/secp256k1/field.go rename to pkg/crypto/ec/secp256k1/field.go index 71b083b..669dc1d 100644 --- a/crypto/ec/secp256k1/field.go +++ b/pkg/crypto/ec/secp256k1/field.go @@ -52,7 +52,7 @@ package secp256k1 // ordinarily would. See the documentation for FieldVal for more details. import ( - "orly.dev/encoders/hex" + "orly.dev/pkg/encoders/hex" ) // Constants used to make the code more readable. diff --git a/crypto/ec/secp256k1/field_bench_test.go b/pkg/crypto/ec/secp256k1/field_bench_test.go similarity index 100% rename from crypto/ec/secp256k1/field_bench_test.go rename to pkg/crypto/ec/secp256k1/field_bench_test.go diff --git a/crypto/ec/secp256k1/field_test.go b/pkg/crypto/ec/secp256k1/field_test.go similarity index 99% rename from crypto/ec/secp256k1/field_test.go rename to pkg/crypto/ec/secp256k1/field_test.go index 1b8283b..1d81025 100644 --- a/crypto/ec/secp256k1/field_test.go +++ b/pkg/crypto/ec/secp256k1/field_test.go @@ -11,12 +11,11 @@ import ( "fmt" "math/big" "math/rand" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "reflect" "testing" "time" - - "orly.dev/encoders/hex" ) // SetHex decodes the passed big-endian hex string into the internal field value diff --git a/crypto/ec/secp256k1/loadprecomputed.go b/pkg/crypto/ec/secp256k1/loadprecomputed.go similarity index 100% rename from crypto/ec/secp256k1/loadprecomputed.go rename to pkg/crypto/ec/secp256k1/loadprecomputed.go diff --git a/crypto/ec/secp256k1/modnscalar.go b/pkg/crypto/ec/secp256k1/modnscalar.go similarity index 99% rename from crypto/ec/secp256k1/modnscalar.go rename to pkg/crypto/ec/secp256k1/modnscalar.go index e1a4a17..776e684 100644 --- a/crypto/ec/secp256k1/modnscalar.go +++ b/pkg/crypto/ec/secp256k1/modnscalar.go @@ -6,8 +6,7 @@ package secp256k1 import ( "math/big" - - "orly.dev/encoders/hex" + "orly.dev/pkg/encoders/hex" ) // References: diff --git a/crypto/ec/secp256k1/modnscalar_bench_test.go b/pkg/crypto/ec/secp256k1/modnscalar_bench_test.go similarity index 100% rename from crypto/ec/secp256k1/modnscalar_bench_test.go rename to pkg/crypto/ec/secp256k1/modnscalar_bench_test.go diff --git a/crypto/ec/secp256k1/modnscalar_test.go b/pkg/crypto/ec/secp256k1/modnscalar_test.go similarity index 99% rename from crypto/ec/secp256k1/modnscalar_test.go rename to pkg/crypto/ec/secp256k1/modnscalar_test.go index c272a83..87f09e5 100644 --- a/crypto/ec/secp256k1/modnscalar_test.go +++ b/pkg/crypto/ec/secp256k1/modnscalar_test.go @@ -9,12 +9,11 @@ import ( "fmt" "math/big" "math/rand" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "reflect" "testing" "time" - - "orly.dev/encoders/hex" ) // SetHex interprets the provided hex string as a 256-bit big-endian unsigned diff --git a/crypto/ec/secp256k1/nonce.go b/pkg/crypto/ec/secp256k1/nonce.go similarity index 99% rename from crypto/ec/secp256k1/nonce.go rename to pkg/crypto/ec/secp256k1/nonce.go index cd40ea9..9e3928a 100644 --- a/crypto/ec/secp256k1/nonce.go +++ b/pkg/crypto/ec/secp256k1/nonce.go @@ -8,7 +8,7 @@ package secp256k1 import ( "bytes" "hash" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/sha256" ) // References: diff --git a/crypto/ec/secp256k1/nonce_test.go b/pkg/crypto/ec/secp256k1/nonce_test.go similarity index 99% rename from crypto/ec/secp256k1/nonce_test.go rename to pkg/crypto/ec/secp256k1/nonce_test.go index 0c314d3..bba0912 100644 --- a/crypto/ec/secp256k1/nonce_test.go +++ b/pkg/crypto/ec/secp256k1/nonce_test.go @@ -7,10 +7,9 @@ package secp256k1 import ( "bytes" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" "testing" - - "orly.dev/encoders/hex" ) // hexToBytes converts the passed hex string into bytes and will panic if there diff --git a/crypto/ec/secp256k1/precomps.go b/pkg/crypto/ec/secp256k1/precomps.go similarity index 100% rename from crypto/ec/secp256k1/precomps.go rename to pkg/crypto/ec/secp256k1/precomps.go diff --git a/crypto/ec/secp256k1/precomps/doc.go b/pkg/crypto/ec/secp256k1/precomps/doc.go similarity index 100% rename from crypto/ec/secp256k1/precomps/doc.go rename to pkg/crypto/ec/secp256k1/precomps/doc.go diff --git a/crypto/ec/secp256k1/precomps/genprecomps.go b/pkg/crypto/ec/secp256k1/precomps/genprecomps.go similarity index 95% rename from crypto/ec/secp256k1/precomps/genprecomps.go rename to pkg/crypto/ec/secp256k1/precomps/genprecomps.go index df28646..5e36e56 100644 --- a/crypto/ec/secp256k1/precomps/genprecomps.go +++ b/pkg/crypto/ec/secp256k1/precomps/genprecomps.go @@ -11,18 +11,18 @@ package main import ( "fmt" "math/big" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "os" ) // curveParams houses the secp256k1 curve parameters for convenient access. -var curveParams = secp256k2.Params() +var curveParams = secp256k1.Params() // bigAffineToJacobian takes an affine point (x, y) as big integers and converts // it to Jacobian point with Z=1. -func bigAffineToJacobian(x, y *big.Int, result *secp256k2.JacobianPoint) { +func bigAffineToJacobian(x, y *big.Int, result *secp256k1.JacobianPoint) { result.X.SetByteSlice(x.Bytes()) result.Y.SetByteSlice(y.Bytes()) result.Z.SetInt(1) @@ -33,13 +33,13 @@ func bigAffineToJacobian(x, y *big.Int, result *secp256k2.JacobianPoint) { func serializedBytePoints() []byte { // Calculate G^(2^i) for i in 0..255. These are used to avoid recomputing // them for each digit of the 8-bit windows. - doublingPoints := make([]secp256k2.JacobianPoint, curveParams.BitSize) - var q secp256k2.JacobianPoint + doublingPoints := make([]secp256k1.JacobianPoint, curveParams.BitSize) + var q secp256k1.JacobianPoint bigAffineToJacobian(curveParams.Gx, curveParams.Gy, &q) for i := 0; i < curveParams.BitSize; i++ { // Q = 2*Q. doublingPoints[i] = q - secp256k2.DoubleNonConst(&q, &q) + secp256k1.DoubleNonConst(&q, &q) } // Separate the bits into byte-sized windows. @@ -54,10 +54,10 @@ func serializedBytePoints() []byte { // Compute all points in this window, convert them to affine, and // serialize them. for i := 0; i < 256; i++ { - var point secp256k2.JacobianPoint + var point secp256k1.JacobianPoint for bit := 0; bit < 8; bit++ { if i>>uint(bit)&1 == 1 { - secp256k2.AddNonConst(&point, &windowPoints[bit], &point) + secp256k1.AddNonConst(&point, &windowPoints[bit], &point) } } point.ToAffine() diff --git a/crypto/ec/secp256k1/pubkey.go b/pkg/crypto/ec/secp256k1/pubkey.go similarity index 100% rename from crypto/ec/secp256k1/pubkey.go rename to pkg/crypto/ec/secp256k1/pubkey.go diff --git a/crypto/ec/secp256k1/pubkey_test.go b/pkg/crypto/ec/secp256k1/pubkey_test.go similarity index 100% rename from crypto/ec/secp256k1/pubkey_test.go rename to pkg/crypto/ec/secp256k1/pubkey_test.go diff --git a/crypto/ec/secp256k1/rawbytepoints.bin b/pkg/crypto/ec/secp256k1/rawbytepoints.bin similarity index 100% rename from crypto/ec/secp256k1/rawbytepoints.bin rename to pkg/crypto/ec/secp256k1/rawbytepoints.bin diff --git a/crypto/ec/secp256k1/seckey.go b/pkg/crypto/ec/secp256k1/seckey.go similarity index 99% rename from crypto/ec/secp256k1/seckey.go rename to pkg/crypto/ec/secp256k1/seckey.go index 5bae2da..c9761d6 100644 --- a/crypto/ec/secp256k1/seckey.go +++ b/pkg/crypto/ec/secp256k1/seckey.go @@ -8,7 +8,7 @@ package secp256k1 import ( "crypto/rand" "io" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" ) // SecretKey provides facilities for working with secp256k1 secret keys within diff --git a/crypto/ec/secp256k1/seckey_bench_test.go b/pkg/crypto/ec/secp256k1/seckey_bench_test.go similarity index 100% rename from crypto/ec/secp256k1/seckey_bench_test.go rename to pkg/crypto/ec/secp256k1/seckey_bench_test.go diff --git a/crypto/ec/secp256k1/seckey_test.go b/pkg/crypto/ec/secp256k1/seckey_test.go similarity index 100% rename from crypto/ec/secp256k1/seckey_test.go rename to pkg/crypto/ec/secp256k1/seckey_test.go diff --git a/crypto/ec/secp256k1/util_test.go b/pkg/crypto/ec/secp256k1/util_test.go similarity index 80% rename from crypto/ec/secp256k1/util_test.go rename to pkg/crypto/ec/secp256k1/util_test.go index ed97b04..df04c7d 100644 --- a/crypto/ec/secp256k1/util_test.go +++ b/pkg/crypto/ec/secp256k1/util_test.go @@ -1,7 +1,7 @@ package secp256k1_test import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var ( diff --git a/crypto/ec/taproot/taproot.go b/pkg/crypto/ec/taproot/taproot.go similarity index 90% rename from crypto/ec/taproot/taproot.go rename to pkg/crypto/ec/taproot/taproot.go index f700aaa..02c0d9a 100644 --- a/crypto/ec/taproot/taproot.go +++ b/pkg/crypto/ec/taproot/taproot.go @@ -6,9 +6,9 @@ import ( "bytes" "errors" "fmt" - bech33 "orly.dev/crypto/ec/bech32" - "orly.dev/crypto/ec/chaincfg" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec/bech32" + "orly.dev/pkg/crypto/ec/chaincfg" + "orly.dev/pkg/utils/chk" ) // AddressSegWit is the base address type for all SegWit addresses. @@ -61,7 +61,7 @@ func newAddressTaproot(hrp []byte, witnessProg []byte) ( // returns the witness version and witness program byte representation. func decodeSegWitAddress(address []byte) (byte, []byte, error) { // Decode the bech32 encoded address. - _, data, bech32version, err := bech33.DecodeGeneric(address) + _, data, bech32version, err := bech32.DecodeGeneric(address) if chk.E(err) { return 0, nil, err } @@ -78,7 +78,7 @@ func decodeSegWitAddress(address []byte) (byte, []byte, error) { // The remaining characters of the address returned are grouped into // words of 5 bits. In order to restore the original witness program // bytes, we'll need to regroup into 8 bit words. - regrouped, err := bech33.ConvertBits(data[1:], 5, 8, false) + regrouped, err := bech32.ConvertBits(data[1:], 5, 8, false) if chk.E(err) { return 0, nil, err } @@ -94,14 +94,14 @@ func decodeSegWitAddress(address []byte) (byte, []byte, error) { ) } // For witness version 0, the bech32 encoding must be used. - if version == 0 && bech32version != bech33.Version0 { + if version == 0 && bech32version != bech32.Version0 { return 0, nil, fmt.Errorf( "invalid checksum expected bech32 " + "encoding for address with witness version 0", ) } // For witness version 1, the bech32m encoding must be used. - if version == 1 && bech32version != bech33.VersionM { + if version == 1 && bech32version != bech32.VersionM { return 0, nil, fmt.Errorf( "invalid checksum expected bech32m " + "encoding for address with witness version 1", @@ -118,7 +118,7 @@ func encodeSegWitAddress( ) ([]byte, error) { // Group the address bytes into 5 bit groups, as this is what is used to // encode each character in the address string. - converted, err := bech33.ConvertBits(witnessProgram, 8, 5, true) + converted, err := bech32.ConvertBits(witnessProgram, 8, 5, true) if chk.E(err) { return nil, err } @@ -130,10 +130,10 @@ func encodeSegWitAddress( var bech []byte switch witnessVersion { case 0: - bech, err = bech33.Encode(hrp, combined) + bech, err = bech32.Encode(hrp, combined) case 1: - bech, err = bech33.EncodeM(hrp, combined) + bech, err = bech32.EncodeM(hrp, combined) default: return nil, fmt.Errorf( diff --git a/crypto/p256k/btcec/util_test.go b/pkg/crypto/ec/util_test.go similarity index 80% rename from crypto/p256k/btcec/util_test.go rename to pkg/crypto/ec/util_test.go index f047ed4..bc39720 100644 --- a/crypto/p256k/btcec/util_test.go +++ b/pkg/crypto/ec/util_test.go @@ -1,7 +1,7 @@ package btcec_test import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var ( diff --git a/crypto/ec/wire/blockheader.go b/pkg/crypto/ec/wire/blockheader.go similarity index 95% rename from crypto/ec/wire/blockheader.go rename to pkg/crypto/ec/wire/blockheader.go index 620bbf7..f8da3b1 100644 --- a/crypto/ec/wire/blockheader.go +++ b/pkg/crypto/ec/wire/blockheader.go @@ -1,7 +1,7 @@ package wire import ( - "orly.dev/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/chainhash" "time" ) diff --git a/crypto/ec/wire/msgblock.go b/pkg/crypto/ec/wire/msgblock.go similarity index 100% rename from crypto/ec/wire/msgblock.go rename to pkg/crypto/ec/wire/msgblock.go diff --git a/crypto/ec/wire/msgtx.go b/pkg/crypto/ec/wire/msgtx.go similarity index 96% rename from crypto/ec/wire/msgtx.go rename to pkg/crypto/ec/wire/msgtx.go index 2beeeea..2a53ad1 100644 --- a/crypto/ec/wire/msgtx.go +++ b/pkg/crypto/ec/wire/msgtx.go @@ -1,7 +1,7 @@ package wire import ( - "orly.dev/crypto/ec/chainhash" + "orly.dev/pkg/crypto/ec/chainhash" ) // OutPoint defines a bitcoin data type that is used to track previous diff --git a/crypto/ec/wire/wire.go b/pkg/crypto/ec/wire/wire.go similarity index 100% rename from crypto/ec/wire/wire.go rename to pkg/crypto/ec/wire/wire.go diff --git a/crypto/encryption/README.md b/pkg/crypto/encryption/README.md similarity index 100% rename from crypto/encryption/README.md rename to pkg/crypto/encryption/README.md diff --git a/crypto/encryption/doc.go b/pkg/crypto/encryption/doc.go similarity index 100% rename from crypto/encryption/doc.go rename to pkg/crypto/encryption/doc.go diff --git a/crypto/encryption/nip4.go b/pkg/crypto/encryption/nip4.go similarity index 96% rename from crypto/encryption/nip4.go rename to pkg/crypto/encryption/nip4.go index 443305c..c6c9138 100644 --- a/crypto/encryption/nip4.go +++ b/pkg/crypto/encryption/nip4.go @@ -5,14 +5,13 @@ import ( "crypto/aes" "crypto/cipher" "encoding/base64" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" "strings" "lukechampine.com/frand" - - "orly.dev/encoders/hex" ) // ComputeSharedSecret returns a shared secret key used to encrypt messages. The private and public keys should be hex diff --git a/crypto/encryption/nip44.go b/pkg/crypto/encryption/nip44.go similarity index 98% rename from crypto/encryption/nip44.go rename to pkg/crypto/encryption/nip44.go index f99af6a..66159ea 100644 --- a/crypto/encryption/nip44.go +++ b/pkg/crypto/encryption/nip44.go @@ -6,14 +6,13 @@ import ( "crypto/rand" "encoding/base64" "encoding/binary" - "io" - "math" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "golang.org/x/crypto/chacha20" "golang.org/x/crypto/hkdf" + "io" + "math" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) const ( diff --git a/crypto/encryption/nip44_test.go b/pkg/crypto/encryption/nip44_test.go similarity index 99% rename from crypto/encryption/nip44_test.go rename to pkg/crypto/encryption/nip44_test.go index c9100c6..04322df 100644 --- a/crypto/encryption/nip44_test.go +++ b/pkg/crypto/encryption/nip44_test.go @@ -4,15 +4,14 @@ import ( "crypto/rand" "fmt" "hash" - "orly.dev/crypto/keys" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/keys" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "strings" "testing" "github.com/stretchr/testify/assert" - - "orly.dev/encoders/hex" ) func assertCryptPriv( diff --git a/crypto/keys/keys.go b/pkg/crypto/keys/keys.go similarity index 94% rename from crypto/keys/keys.go rename to pkg/crypto/keys/keys.go index b345c21..be73c01 100644 --- a/crypto/keys/keys.go +++ b/pkg/crypto/keys/keys.go @@ -4,11 +4,10 @@ package keys import ( "bytes" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" - - "orly.dev/encoders/hex" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" ) // GeneratePrivateKey - deprecated, use GenerateSecretKeyHex diff --git a/crypto/p256k/README.md b/pkg/crypto/p256k/README.md similarity index 96% rename from crypto/p256k/README.md rename to pkg/crypto/p256k/README.md index 8350f33..c1be53f 100644 --- a/crypto/p256k/README.md +++ b/pkg/crypto/p256k/README.md @@ -18,7 +18,7 @@ is 4x faster at signing and generating shared secrets so it is a must if your intention is to use it for high throughput systems like a network transport. The easy way to install it, if you have ubuntu/debian, is the script -[../ubuntu_install_libsecp256k1.sh](../../scripts/ubuntu_install_libsecp256k1.sh), it +[../ubuntu_install_libsecp256k1.sh](../../../scripts/ubuntu_install_libsecp256k1.sh), it handles the dependencies and runs the build all in one step for you. Note that it For ubuntu, you need these: diff --git a/crypto/p256k/btcec.go b/pkg/crypto/p256k/btcec.go similarity index 91% rename from crypto/p256k/btcec.go rename to pkg/crypto/p256k/btcec.go index ba7e7e3..a99d7e6 100644 --- a/crypto/p256k/btcec.go +++ b/pkg/crypto/p256k/btcec.go @@ -3,7 +3,7 @@ package p256k import ( - "orly.dev/crypto/p256k/btcec" + "orly.dev/pkg/crypto/p256k/btcec" ) func init() { diff --git a/crypto/p256k/btcec/btcec.go b/pkg/crypto/p256k/btcec/btcec.go similarity index 68% rename from crypto/p256k/btcec/btcec.go rename to pkg/crypto/p256k/btcec/btcec.go index 2d5e4d2..c3fcaee 100644 --- a/crypto/p256k/btcec/btcec.go +++ b/pkg/crypto/p256k/btcec/btcec.go @@ -2,19 +2,19 @@ package btcec import ( - btcec2 "orly.dev/crypto/ec" - schnorr2 "orly.dev/crypto/ec/schnorr" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/interfaces/signer" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + btcec3 "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // Signer is an implementation of signer.I that uses the btcec library. type Signer struct { - SecretKey *secp256k2.SecretKey - PublicKey *secp256k2.PublicKey - BTCECSec *btcec2.SecretKey + SecretKey *secp256k1.SecretKey + PublicKey *secp256k1.PublicKey + BTCECSec *btcec3.SecretKey pkb, skb []byte } @@ -22,32 +22,32 @@ var _ signer.I = &Signer{} // Generate creates a new Signer. func (s *Signer) Generate() (err error) { - if s.SecretKey, err = btcec2.NewSecretKey(); chk.E(err) { + if s.SecretKey, err = btcec3.NewSecretKey(); chk.E(err) { return } s.skb = s.SecretKey.Serialize() - s.BTCECSec, _ = btcec2.PrivKeyFromBytes(s.skb) + s.BTCECSec, _ = btcec3.PrivKeyFromBytes(s.skb) s.PublicKey = s.SecretKey.PubKey() - s.pkb = schnorr2.SerializePubKey(s.PublicKey) + s.pkb = schnorr.SerializePubKey(s.PublicKey) return } // InitSec initialises a Signer using raw secret key bytes. func (s *Signer) InitSec(sec []byte) (err error) { - if len(sec) != secp256k2.SecKeyBytesLen { - err = errorf.E("sec key must be %d bytes", secp256k2.SecKeyBytesLen) + if len(sec) != secp256k1.SecKeyBytesLen { + err = errorf.E("sec key must be %d bytes", secp256k1.SecKeyBytesLen) return } - s.SecretKey = secp256k2.SecKeyFromBytes(sec) + s.SecretKey = secp256k1.SecKeyFromBytes(sec) s.PublicKey = s.SecretKey.PubKey() - s.pkb = schnorr2.SerializePubKey(s.PublicKey) - s.BTCECSec, _ = btcec2.PrivKeyFromBytes(s.skb) + s.pkb = schnorr.SerializePubKey(s.PublicKey) + s.BTCECSec, _ = btcec3.PrivKeyFromBytes(s.skb) return } // InitPub initializes a signature verifier Signer from raw public key bytes. func (s *Signer) InitPub(pub []byte) (err error) { - if s.PublicKey, err = schnorr2.ParsePubKey(pub); chk.E(err) { + if s.PublicKey, err = schnorr.ParsePubKey(pub); chk.E(err) { return } s.pkb = pub @@ -66,8 +66,8 @@ func (s *Signer) Sign(msg []byte) (sig []byte, err error) { err = errorf.E("btcec: Signer not initialized") return } - var si *schnorr2.Signature - if si, err = schnorr2.Sign(s.SecretKey, msg); chk.E(err) { + var si *schnorr.Signature + if si, err = schnorr.Sign(s.SecretKey, msg); chk.E(err) { return } sig = si.Serialize() @@ -80,8 +80,8 @@ func (s *Signer) Verify(msg, sig []byte) (valid bool, err error) { err = errorf.E("btcec: Pubkey not initialized") return } - var si *schnorr2.Signature - if si, err = schnorr2.ParseSignature(sig); chk.D(err) { + var si *schnorr.Signature + if si, err = schnorr.ParseSignature(sig); chk.D(err) { err = errorf.E( "failed to parse signature:\n%d %s\n%v", len(sig), sig, err, @@ -98,15 +98,15 @@ func (s *Signer) Zero() { s.SecretKey.Key.Zero() } // ECDH creates a shared secret from a secret key and a provided public key bytes. It is advised // to hash this result for security reasons. func (s *Signer) ECDH(pubkeyBytes []byte) (secret []byte, err error) { - var pub *secp256k2.PublicKey - if pub, err = secp256k2.ParsePubKey( + var pub *secp256k1.PublicKey + if pub, err = secp256k1.ParsePubKey( append( []byte{0x02}, pubkeyBytes..., ), ); chk.E(err) { return } - secret = btcec2.GenerateSharedSecret(s.BTCECSec, pub) + secret = btcec3.GenerateSharedSecret(s.BTCECSec, pub) return } @@ -118,11 +118,11 @@ type Keygen struct { // Generate a new key pair. If the result is suitable, the embedded Signer can have its contents // extracted. func (k *Keygen) Generate() (pubBytes []byte, err error) { - if k.Signer.SecretKey, err = btcec2.NewSecretKey(); chk.E(err) { + if k.Signer.SecretKey, err = btcec3.NewSecretKey(); chk.E(err) { return } k.Signer.PublicKey = k.SecretKey.PubKey() - k.Signer.pkb = schnorr2.SerializePubKey(k.Signer.PublicKey) + k.Signer.pkb = schnorr.SerializePubKey(k.Signer.PublicKey) pubBytes = k.Signer.pkb return } diff --git a/crypto/p256k/btcec/btcec_test.go b/pkg/crypto/p256k/btcec/btcec_test.go similarity index 95% rename from crypto/p256k/btcec/btcec_test.go rename to pkg/crypto/p256k/btcec/btcec_test.go index ae7e7d0..d97a8f1 100644 --- a/crypto/p256k/btcec/btcec_test.go +++ b/pkg/crypto/p256k/btcec/btcec_test.go @@ -3,14 +3,13 @@ package btcec_test import ( "bufio" "bytes" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/p256k/btcec" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/p256k/btcec" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" "testing" "time" - - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" ) func TestSigner_Generate(t *testing.T) { diff --git a/crypto/ec/util_test.go b/pkg/crypto/p256k/btcec/util_test.go similarity index 80% rename from crypto/ec/util_test.go rename to pkg/crypto/p256k/btcec/util_test.go index f047ed4..bc39720 100644 --- a/crypto/ec/util_test.go +++ b/pkg/crypto/p256k/btcec/util_test.go @@ -1,7 +1,7 @@ package btcec_test import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var ( diff --git a/crypto/p256k/doc.go b/pkg/crypto/p256k/doc.go similarity index 100% rename from crypto/p256k/doc.go rename to pkg/crypto/p256k/doc.go diff --git a/crypto/p256k/p256k.go b/pkg/crypto/p256k/p256k.go similarity index 88% rename from crypto/p256k/p256k.go rename to pkg/crypto/p256k/p256k.go index 74d5317..02f4acc 100644 --- a/crypto/p256k/p256k.go +++ b/pkg/crypto/p256k/p256k.go @@ -4,12 +4,12 @@ package p256k import "C" import ( - btcec2 "orly.dev/crypto/ec" - "orly.dev/crypto/ec/secp256k1" - realy "orly.dev/interfaces/signer" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/secp256k1" + realy "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) func init() { @@ -29,7 +29,7 @@ type Signer struct { // PublicKey is the public key. PublicKey *PubKey // BTCECSec is needed for ECDH as currently the CGO bindings don't include it - BTCECSec *btcec2.SecretKey + BTCECSec *btcec.SecretKey skb, pkb []byte } @@ -44,7 +44,7 @@ func (s *Signer) Generate() (err error) { } s.SecretKey = &cs.Key s.PublicKey = cx.Key - s.BTCECSec, _ = btcec2.PrivKeyFromBytes(s.skb) + s.BTCECSec, _ = btcec.PrivKeyFromBytes(s.skb) return } @@ -63,7 +63,7 @@ func (s *Signer) InitSec(skb []byte) (err error) { s.PublicKey = cx.Key // s.ECPublicKey = cp.Key // needed for ecdh - s.BTCECSec, _ = btcec2.PrivKeyFromBytes(s.skb) + s.BTCECSec, _ = btcec.PrivKeyFromBytes(s.skb) return } @@ -122,7 +122,7 @@ func (s *Signer) ECDH(pubkeyBytes []byte) (secret []byte, err error) { ); chk.E(err) { return } - secret = btcec2.GenerateSharedSecret(s.BTCECSec, pub) + secret = btcec.GenerateSharedSecret(s.BTCECSec, pub) return } diff --git a/crypto/p256k/p256k_test.go b/pkg/crypto/p256k/p256k_test.go similarity index 89% rename from crypto/p256k/p256k_test.go rename to pkg/crypto/p256k/p256k_test.go index 9b27da8..84a7427 100644 --- a/crypto/p256k/p256k_test.go +++ b/pkg/crypto/p256k/p256k_test.go @@ -6,20 +6,19 @@ import ( "bufio" "bytes" "crypto/sha256" - "orly.dev/crypto/ec/schnorr" - p256k2 "orly.dev/crypto/p256k" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + realy "orly.dev/pkg/interfaces/signer" "testing" "time" - - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - realy "orly.dev/interfaces/signer" ) func TestSigner_Generate(t *testing.T) { for _ = range 10000 { var err error - signer := &p256k2.Signer{} + signer := &p256k.Signer{} var skb []byte if err = signer.Generate(); chk.E(err) { t.Fatal(err) @@ -37,7 +36,7 @@ func TestSignerVerify(t *testing.T) { buf := make([]byte, 1_000_000) scanner.Buffer(buf, len(buf)) var err error - signer := &p256k2.Signer{} + signer := &p256k.Signer{} for scanner.Scan() { var valid bool b := scanner.Bytes() @@ -83,16 +82,16 @@ func TestSignerSign(t *testing.T) { buf := make([]byte, 1_000_000) scanner.Buffer(buf, len(buf)) var err error - signer := &p256k2.Signer{} + signer := &p256k.Signer{} var skb, pkb []byte - if skb, pkb, _, _, err = p256k2.Generate(); chk.E(err) { + if skb, pkb, _, _, err = p256k.Generate(); chk.E(err) { t.Fatal(err) } log.I.S(skb, pkb) if err = signer.InitSec(skb); chk.E(err) { t.Fatal(err) } - verifier := &p256k2.Signer{} + verifier := &p256k.Signer{} if err = verifier.InitPub(pkb); chk.E(err) { t.Fatal(err) } @@ -129,7 +128,7 @@ func TestECDH(t *testing.T) { var counter int const total = 100 for _ = range total { - s1, s2 = &p256k2.Signer{}, &p256k2.Signer{} + s1, s2 = &p256k.Signer{}, &p256k.Signer{} if err = s1.Generate(); chk.E(err) { t.Fatal(err) } diff --git a/crypto/p256k/secp256k1.go b/pkg/crypto/p256k/secp256k1.go similarity index 91% rename from crypto/p256k/secp256k1.go rename to pkg/crypto/p256k/secp256k1.go index 6e5882e..75416a6 100644 --- a/crypto/p256k/secp256k1.go +++ b/pkg/crypto/p256k/secp256k1.go @@ -4,12 +4,12 @@ package p256k import ( "crypto/rand" - schnorr2 "orly.dev/crypto/ec/schnorr" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" "unsafe" ) @@ -133,9 +133,9 @@ func FromSecretBytes(skb []byte) ( // ecPub *PublicKey, err error, ) { - xpkb := make([]byte, schnorr2.PubKeyBytesLen) + xpkb := make([]byte, schnorr.PubKeyBytesLen) // clen := C.size_t(secp256k1.PubKeyBytesLenCompressed - 1) - pkb = make([]byte, schnorr2.PubKeyBytesLen) + pkb = make([]byte, schnorr.PubKeyBytesLen) var parity Cint // ecPub = NewPublicKey() pub = NewXPublicKey() @@ -178,8 +178,8 @@ func Generate() ( pub *XPublicKey, err error, ) { - skb = make([]byte, secp256k2.SecKeyBytesLen) - pkb = make([]byte, schnorr2.PubKeyBytesLen) + skb = make([]byte, secp256k1.SecKeyBytesLen) + pkb = make([]byte, schnorr.PubKeyBytesLen) upkb := ToUchar(pkb) var parity Cint pub = NewXPublicKey() @@ -211,14 +211,14 @@ type ECPub struct { // // This function is for the purpose of getting a key to do ECDH from an x-only key. func ECPubFromSchnorrBytes(xkb []byte) (pub *ECPub, err error) { - if err = AssertLen(xkb, schnorr2.PubKeyBytesLen, "pubkey"); chk.E(err) { + if err = AssertLen(xkb, schnorr.PubKeyBytesLen, "pubkey"); chk.E(err) { return } pub = &ECPub{} p := append([]byte{0}, xkb...) if C.secp256k1_ec_pubkey_parse( ctx, &pub.Key, ToUchar(p), - secp256k2.PubKeyBytesLenCompressed, + secp256k1.PubKeyBytesLenCompressed, ) != 1 { err = errorf.E("failed to parse pubkey from %0x", p) log.I.S(pub) @@ -249,7 +249,7 @@ type Pub struct { // PubFromBytes creates a public key from raw bytes. func PubFromBytes(pk []byte) (pub *Pub, err error) { - if err = AssertLen(pk, schnorr2.PubKeyBytesLen, "pubkey"); chk.E(err) { + if err = AssertLen(pk, schnorr.PubKeyBytesLen, "pubkey"); chk.E(err) { return } pub = new(Pub) @@ -262,7 +262,7 @@ func PubFromBytes(pk []byte) (pub *Pub, err error) { // PubB returns the contained public key as bytes. func (p *Pub) PubB() (b []byte) { - b = make([]byte, schnorr2.PubKeyBytesLen) + b = make([]byte, schnorr.PubKeyBytesLen) C.secp256k1_xonly_pubkey_serialize(ctx, ToUchar(b), &p.Key) return } @@ -272,7 +272,7 @@ func (p *Pub) Pub() *PubKey { return &p.Key } // ToBytes returns the contained public key as bytes. func (p *Pub) ToBytes() (b []byte, err error) { - b = make([]byte, schnorr2.PubKeyBytesLen) + b = make([]byte, schnorr.PubKeyBytesLen) if C.secp256k1_xonly_pubkey_serialize(ctx, ToUchar(b), p.Pub()) != 1 { err = errorf.E("pubkey serialize failed") return @@ -282,7 +282,7 @@ func (p *Pub) ToBytes() (b []byte, err error) { // Sign a message and return a schnorr BIP-340 64 byte signature. func Sign(msg *Uchar, sk *SecKey) (sig []byte, err error) { - sig = make([]byte, schnorr2.SignatureSize) + sig = make([]byte, schnorr.SignatureSize) c := CreateRandomContext() if C.secp256k1_schnorrsig_sign32( c, ToUchar(sig), msg, sk, @@ -318,7 +318,7 @@ func Msg(b []byte) (id *Uchar, err error) { // Sig checks that a signature bytes is correct, and converts it for use with a Signer. func Sig(b []byte) (sig *Uchar, err error) { - if err = AssertLen(b, schnorr2.SignatureSize, "sig"); chk.E(err) { + if err = AssertLen(b, schnorr.SignatureSize, "sig"); chk.E(err) { return } sig = ToUchar(b) @@ -384,9 +384,9 @@ type Keygen struct { // allocated once per thread. func NewKeygen() (k *Keygen) { k = new(Keygen) - k.cmprLen = C.size_t(secp256k2.PubKeyBytesLenCompressed) - k.secBytes = make([]byte, secp256k2.SecKeyBytesLen) - k.comprPubBytes = make([]byte, secp256k2.PubKeyBytesLenCompressed) + k.cmprLen = C.size_t(secp256k1.PubKeyBytesLenCompressed) + k.secBytes = make([]byte, secp256k1.SecKeyBytesLen) + k.comprPubBytes = make([]byte, secp256k1.PubKeyBytesLenCompressed) k.secUchar = ToUchar(k.secBytes) k.cmprPubUchar = ToUchar(k.comprPubBytes) k.sec = &Sec{} diff --git a/crypto/p256k/secp256k1_test.go b/pkg/crypto/p256k/secp256k1_test.go similarity index 91% rename from crypto/p256k/secp256k1_test.go rename to pkg/crypto/p256k/secp256k1_test.go index d3e68cb..abc5838 100644 --- a/crypto/p256k/secp256k1_test.go +++ b/pkg/crypto/p256k/secp256k1_test.go @@ -5,13 +5,12 @@ package p256k_test import ( "bufio" "bytes" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/p256k" - "orly.dev/crypto/sha256" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" "testing" - - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" ) func TestVerify(t *testing.T) { diff --git a/crypto/p256k/util_test.go b/pkg/crypto/p256k/util_test.go similarity index 80% rename from crypto/p256k/util_test.go rename to pkg/crypto/p256k/util_test.go index 26738e6..7e8605e 100644 --- a/crypto/p256k/util_test.go +++ b/pkg/crypto/p256k/util_test.go @@ -1,7 +1,7 @@ package p256k_test import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var ( diff --git a/crypto/sha256/LICENSE b/pkg/crypto/sha256/LICENSE similarity index 100% rename from crypto/sha256/LICENSE rename to pkg/crypto/sha256/LICENSE diff --git a/crypto/sha256/README.md b/pkg/crypto/sha256/README.md similarity index 100% rename from crypto/sha256/README.md rename to pkg/crypto/sha256/README.md diff --git a/crypto/sha256/cpuid_other.go b/pkg/crypto/sha256/cpuid_other.go similarity index 100% rename from crypto/sha256/cpuid_other.go rename to pkg/crypto/sha256/cpuid_other.go diff --git a/crypto/sha256/doc.go b/pkg/crypto/sha256/doc.go similarity index 100% rename from crypto/sha256/doc.go rename to pkg/crypto/sha256/doc.go diff --git a/crypto/sha256/sha256.go b/pkg/crypto/sha256/sha256.go similarity index 100% rename from crypto/sha256/sha256.go rename to pkg/crypto/sha256/sha256.go diff --git a/crypto/sha256/sha256_test.go b/pkg/crypto/sha256/sha256_test.go similarity index 99% rename from crypto/sha256/sha256_test.go rename to pkg/crypto/sha256/sha256_test.go index a6a7f2e..5cb4aca 100644 --- a/crypto/sha256/sha256_test.go +++ b/pkg/crypto/sha256/sha256_test.go @@ -56,7 +56,7 @@ import ( "fmt" "hash" "io" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "strings" "testing" ) diff --git a/crypto/sha256/sha256blockAvx512_amd64.asm b/pkg/crypto/sha256/sha256blockAvx512_amd64.asm similarity index 100% rename from crypto/sha256/sha256blockAvx512_amd64.asm rename to pkg/crypto/sha256/sha256blockAvx512_amd64.asm diff --git a/crypto/sha256/sha256blockAvx512_amd64.go b/pkg/crypto/sha256/sha256blockAvx512_amd64.go similarity index 100% rename from crypto/sha256/sha256blockAvx512_amd64.go rename to pkg/crypto/sha256/sha256blockAvx512_amd64.go diff --git a/crypto/sha256/sha256blockAvx512_amd64.s b/pkg/crypto/sha256/sha256blockAvx512_amd64.s similarity index 100% rename from crypto/sha256/sha256blockAvx512_amd64.s rename to pkg/crypto/sha256/sha256blockAvx512_amd64.s diff --git a/crypto/sha256/sha256blockAvx512_amd64_test.go b/pkg/crypto/sha256/sha256blockAvx512_amd64_test.go similarity index 100% rename from crypto/sha256/sha256blockAvx512_amd64_test.go rename to pkg/crypto/sha256/sha256blockAvx512_amd64_test.go diff --git a/crypto/sha256/sha256block_amd64.go b/pkg/crypto/sha256/sha256block_amd64.go similarity index 100% rename from crypto/sha256/sha256block_amd64.go rename to pkg/crypto/sha256/sha256block_amd64.go diff --git a/crypto/sha256/sha256block_amd64.s b/pkg/crypto/sha256/sha256block_amd64.s similarity index 100% rename from crypto/sha256/sha256block_amd64.s rename to pkg/crypto/sha256/sha256block_amd64.s diff --git a/crypto/sha256/sha256block_amd64_test.go b/pkg/crypto/sha256/sha256block_amd64_test.go similarity index 100% rename from crypto/sha256/sha256block_amd64_test.go rename to pkg/crypto/sha256/sha256block_amd64_test.go diff --git a/crypto/sha256/sha256block_arm64.go b/pkg/crypto/sha256/sha256block_arm64.go similarity index 100% rename from crypto/sha256/sha256block_arm64.go rename to pkg/crypto/sha256/sha256block_arm64.go diff --git a/crypto/sha256/sha256block_arm64.s b/pkg/crypto/sha256/sha256block_arm64.s similarity index 100% rename from crypto/sha256/sha256block_arm64.s rename to pkg/crypto/sha256/sha256block_arm64.s diff --git a/crypto/sha256/sha256block_other.go b/pkg/crypto/sha256/sha256block_other.go similarity index 100% rename from crypto/sha256/sha256block_other.go rename to pkg/crypto/sha256/sha256block_other.go diff --git a/crypto/sha256/test-architectures.sh b/pkg/crypto/sha256/test-architectures.sh similarity index 100% rename from crypto/sha256/test-architectures.sh rename to pkg/crypto/sha256/test-architectures.sh diff --git a/database/database.go b/pkg/database/database.go similarity index 92% rename from database/database.go rename to pkg/database/database.go index f4a7d0c..b185229 100644 --- a/database/database.go +++ b/pkg/database/database.go @@ -3,13 +3,13 @@ package database import ( "github.com/dgraph-io/badger/v4" "io" - "orly.dev/encoders/eventidserial" - "orly.dev/utils/apputil" - "orly.dev/utils/chk" - "orly.dev/utils/context" - "orly.dev/utils/log" - "orly.dev/utils/lol" - "orly.dev/utils/units" + "orly.dev/pkg/encoders/eventidserial" + "orly.dev/pkg/utils/apputil" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" + "orly.dev/pkg/utils/units" "os" "path/filepath" ) diff --git a/database/delete-event.go b/pkg/database/delete-event.go similarity index 87% rename from database/delete-event.go rename to pkg/database/delete-event.go index ae4514b..8a1b850 100644 --- a/database/delete-event.go +++ b/pkg/database/delete-event.go @@ -3,12 +3,12 @@ package database import ( "bytes" "github.com/dgraph-io/badger/v4" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/encoders/eventid" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/database/indexes" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" ) // DeleteEvent removes an event from the database identified by `eid`. If diff --git a/database/fetch-event-by-serial_test.go b/pkg/database/fetch-event-by-serial_test.go similarity index 94% rename from database/fetch-event-by-serial_test.go rename to pkg/database/fetch-event-by-serial_test.go index feb1637..8d670b7 100644 --- a/database/fetch-event-by-serial_test.go +++ b/pkg/database/fetch-event-by-serial_test.go @@ -3,13 +3,13 @@ package database import ( "bufio" "bytes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/tag" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/get-fullidpubkey-by-serial.go b/pkg/database/get-fullidpubkey-by-serial.go similarity index 85% rename from database/get-fullidpubkey-by-serial.go rename to pkg/database/get-fullidpubkey-by-serial.go index 624935d..9be581a 100644 --- a/database/get-fullidpubkey-by-serial.go +++ b/pkg/database/get-fullidpubkey-by-serial.go @@ -3,11 +3,11 @@ package database import ( "bytes" "github.com/dgraph-io/badger/v4" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/codecbuf" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" ) func (d *D) GetFullIdPubkeyBySerial(ser *types.Uint40) ( diff --git a/database/get-indexes-for-event.go b/pkg/database/get-indexes-for-event.go similarity index 96% rename from database/get-indexes-for-event.go rename to pkg/database/get-indexes-for-event.go index 4821c34..a719971 100644 --- a/database/get-indexes-for-event.go +++ b/pkg/database/get-indexes-for-event.go @@ -2,10 +2,10 @@ package database import ( "bytes" - "orly.dev/database/indexes" - . "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes" + . "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/utils/chk" ) // appendIndexBytes marshals an index to a byte slice and appends it to the idxs slice diff --git a/database/get-indexes-for-event_test.go b/pkg/database/get-indexes-for-event_test.go similarity index 90% rename from database/get-indexes-for-event_test.go rename to pkg/database/get-indexes-for-event_test.go index 293ec96..e816b61 100644 --- a/database/get-indexes-for-event_test.go +++ b/pkg/database/get-indexes-for-event_test.go @@ -2,18 +2,18 @@ package database import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes" + types2 "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" "testing" "github.com/minio/sha256-simd" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/codecbuf" - "orly.dev/encoders/event" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" ) func TestGetIndexesForEvent(t *testing.T) { @@ -93,13 +93,13 @@ func testBasicEvent(t *testing.T) { // Create and verify the expected indexes // 1. Id index - ser := new(types.Uint40) + ser := new(types2.Uint40) err = ser.Set(serial) if chk.E(err) { t.Fatalf("Failed to create Uint40: %v", err) } - idHash := new(types.IdHash) + idHash := new(types2.IdHash) err = idHash.FromId(ev.Id) if chk.E(err) { t.Fatalf("Failed to create IdHash: %v", err) @@ -108,19 +108,19 @@ func testBasicEvent(t *testing.T) { verifyIndexIncluded(t, idxs, idIndex) // 2. FullIdPubkey index - fullID := new(types.Id) + fullID := new(types2.Id) err = fullID.FromId(ev.Id) if chk.E(err) { t.Fatalf("Failed to create Id: %v", err) } - pubHash := new(types.PubHash) + pubHash := new(types2.PubHash) err = pubHash.FromPubkey(ev.Pubkey) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } - createdAt := new(types.Uint64) + createdAt := new(types2.Uint64) createdAt.Set(uint64(ev.CreatedAt.V)) idPubkeyIndex := indexes.FullIdPubkeyEnc(ser, fullID, pubHash, createdAt) @@ -135,7 +135,7 @@ func testBasicEvent(t *testing.T) { verifyIndexIncluded(t, idxs, pubkeyIndex) // 5. Kind index - kind := new(types.Uint16) + kind := new(types2.Uint16) kind.Set(uint16(ev.Kind.K)) kindIndex := indexes.KindEnc(kind, createdAt, ser) @@ -203,33 +203,33 @@ func testEventWithTags(t *testing.T) { } // Create and verify the basic indexes (same as in testBasicEvent) - ser := new(types.Uint40) + ser := new(types2.Uint40) err = ser.Set(serial) if chk.E(err) { t.Fatalf("Failed to create Uint40: %v", err) } - idHash := new(types.IdHash) + idHash := new(types2.IdHash) err = idHash.FromId(ev.Id) if chk.E(err) { t.Fatalf("Failed to create IdHash: %v", err) } // Verify one of the tag-related indexes (e tag) - pubHash := new(types.PubHash) + pubHash := new(types2.PubHash) err = pubHash.FromPubkey(ev.Pubkey) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } - createdAt := new(types.Uint64) + createdAt := new(types2.Uint64) createdAt.Set(uint64(ev.CreatedAt.V)) // Create tag key and value for e tag - eKey := new(types.Letter) + eKey := new(types2.Letter) eKey.Set('e') - eValueHash := new(types.Ident) + eValueHash := new(types2.Ident) eValueHash.FromIdent([]byte("abcdef1234567890")) // Verify TagPubkey index for e tag @@ -245,7 +245,7 @@ func testEventWithTags(t *testing.T) { verifyIndexIncluded(t, idxs, tagIndex) // Verify TagKind index for e tag - kind := new(types.Uint16) + kind := new(types2.Uint16) kind.Set(uint16(ev.Kind.K)) kindTagIndex := indexes.TagKindEnc(eKey, eValueHash, kind, createdAt, ser) diff --git a/database/get-indexes-from-filter.go b/pkg/database/get-indexes-from-filter.go similarity index 91% rename from database/get-indexes-from-filter.go rename to pkg/database/get-indexes-from-filter.go index bddad34..2e37628 100644 --- a/database/get-indexes-from-filter.go +++ b/pkg/database/get-indexes-from-filter.go @@ -3,11 +3,11 @@ package database import ( "bytes" "math" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/filter" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/database/indexes" + types2 "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "sort" ) @@ -29,8 +29,8 @@ func isHexString(data []byte) (isHex bool) { } // createIdHashFromData creates an IdHash from data that could be hex or binary -func createIdHashFromData(data []byte) (i *types.IdHash, err error) { - i = new(types.IdHash) +func createIdHashFromData(data []byte) (i *types2.IdHash, err error) { + i = new(types2.IdHash) // If data looks like hex string and has the right length for hex-encoded // sha256 @@ -48,8 +48,8 @@ func createIdHashFromData(data []byte) (i *types.IdHash, err error) { } // createPubHashFromData creates a PubHash from data that could be hex or binary -func createPubHashFromData(data []byte) (p *types.PubHash, err error) { - p = new(types.PubHash) +func createPubHashFromData(data []byte) (p *types2.PubHash, err error) { + p = new(types2.PubHash) // If data looks like hex string and has the right length for hex-encoded // pubkey @@ -82,7 +82,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { if f.Ids.Len() > 0 { for _, id := range f.Ids.ToSliceOfBytes() { if err = func() (err error) { - var i *types.IdHash + var i *types2.IdHash if i, err = createIdHashFromData(id); chk.E(err) { return } @@ -102,8 +102,8 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { return } - caStart := new(types.Uint64) - caEnd := new(types.Uint64) + caStart := new(types2.Uint64) + caEnd := new(types2.Uint64) // Set the start of range (Since or default to zero) if f.Since != nil && f.Since.V != 0 { @@ -135,14 +135,14 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { for _, author := range f.Authors.ToSliceOfBytes() { for _, tag := range f.Tags.ToSliceOfTags() { if tag.Len() >= 2 && (len(tag.S(0)) == 1 || (len(tag.S(0)) == 2 && tag.S(0)[0] == '#')) { - kind := new(types.Uint16) + kind := new(types2.Uint16) kind.Set(k) - var p *types.PubHash + var p *types2.PubHash if p, err = createPubHashFromData(author); chk.E(err) { return } keyBytes := tag.B(0) - key := new(types.Letter) + key := new(types2.Letter) // If the tag key starts with '#', use the second character as the key if len(keyBytes) == 2 && keyBytes[0] == '#' { key.Set(keyBytes[1]) @@ -150,7 +150,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { key.Set(keyBytes[0]) } for _, valueBytes := range tag.ToSliceOfBytes()[1:] { - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(valueBytes) start, end := new(bytes.Buffer), new(bytes.Buffer) idxS := indexes.TagKindPubkeyEnc( @@ -183,10 +183,10 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { for _, k := range f.Kinds.ToUint16() { for _, tag := range f.Tags.ToSliceOfTags() { if tag.Len() >= 2 && (len(tag.S(0)) == 1 || (len(tag.S(0)) == 2 && tag.S(0)[0] == '#')) { - kind := new(types.Uint16) + kind := new(types2.Uint16) kind.Set(k) keyBytes := tag.B(0) - key := new(types.Letter) + key := new(types2.Letter) // If the tag key starts with '#', use the second character as the key if len(keyBytes) == 2 && keyBytes[0] == '#' { key.Set(keyBytes[1]) @@ -194,7 +194,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { key.Set(keyBytes[0]) } for _, valueBytes := range tag.ToSliceOfBytes()[1:] { - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(valueBytes) start, end := new(bytes.Buffer), new(bytes.Buffer) idxS := indexes.TagKindEnc( @@ -226,12 +226,12 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { for _, author := range f.Authors.ToSliceOfBytes() { for _, tag := range f.Tags.ToSliceOfTags() { if tag.Len() >= 2 && (len(tag.S(0)) == 1 || (len(tag.S(0)) == 2 && tag.S(0)[0] == '#')) { - var p *types.PubHash + var p *types2.PubHash if p, err = createPubHashFromData(author); chk.E(err) { return } keyBytes := tag.B(0) - key := new(types.Letter) + key := new(types2.Letter) // If the tag key starts with '#', use the second character as the key if len(keyBytes) == 2 && keyBytes[0] == '#' { key.Set(keyBytes[1]) @@ -239,7 +239,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { key.Set(keyBytes[0]) } for _, valueBytes := range tag.ToSliceOfBytes()[1:] { - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(valueBytes) start, end := new(bytes.Buffer), new(bytes.Buffer) idxS := indexes.TagPubkeyEnc( @@ -269,7 +269,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { for _, tag := range f.Tags.ToSliceOfTags() { if tag.Len() >= 2 && (len(tag.S(0)) == 1 || (len(tag.S(0)) == 2 && tag.S(0)[0] == '#')) { keyBytes := tag.B(0) - key := new(types.Letter) + key := new(types2.Letter) // If the tag key starts with '#', use the second character as the key if len(keyBytes) == 2 && keyBytes[0] == '#' { key.Set(keyBytes[1]) @@ -277,7 +277,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { key.Set(keyBytes[0]) } for _, valueBytes := range tag.ToSliceOfBytes()[1:] { - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(valueBytes) start, end := new(bytes.Buffer), new(bytes.Buffer) idxS := indexes.TagEnc(key, valueHash, caStart, nil) @@ -301,9 +301,9 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { if f.Kinds != nil && f.Kinds.Len() > 0 && f.Authors != nil && f.Authors.Len() > 0 { for _, k := range f.Kinds.ToUint16() { for _, author := range f.Authors.ToSliceOfBytes() { - kind := new(types.Uint16) + kind := new(types2.Uint16) kind.Set(k) - p := new(types.PubHash) + p := new(types2.PubHash) if err = p.FromPubkey(author); chk.E(err) { return } @@ -327,7 +327,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { // Kind kc- if f.Kinds != nil && f.Kinds.Len() > 0 && (f.Authors == nil || f.Authors.Len() == 0) && (f.Tags == nil || f.Tags.Len() == 0) { for _, k := range f.Kinds.ToUint16() { - kind := new(types.Uint16) + kind := new(types2.Uint16) kind.Set(k) start, end := new(bytes.Buffer), new(bytes.Buffer) idxS := indexes.KindEnc(kind, caStart, nil) @@ -348,7 +348,7 @@ func GetIndexesFromFilter(f *filter.F) (idxs []Range, err error) { // Pubkey pc- if f.Authors != nil && f.Authors.Len() > 0 { for _, author := range f.Authors.ToSliceOfBytes() { - p := new(types.PubHash) + p := new(types2.PubHash) if err = p.FromPubkey(author); chk.E(err) { return } diff --git a/database/get-indexes-from-filter_test.go b/pkg/database/get-indexes-from-filter_test.go similarity index 90% rename from database/get-indexes-from-filter_test.go rename to pkg/database/get-indexes-from-filter_test.go index b5f0e14..b6a9cb2 100644 --- a/database/get-indexes-from-filter_test.go +++ b/pkg/database/get-indexes-from-filter_test.go @@ -3,18 +3,18 @@ package database import ( "bytes" "math" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes" + types2 "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" "testing" "github.com/minio/sha256-simd" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/codecbuf" - "orly.dev/encoders/filter" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/timestamp" ) // TestGetIndexesFromFilter tests the GetIndexesFromFilter function @@ -94,7 +94,7 @@ func testIdFilter(t *testing.T) { } // Create the expected index - idHash := new(types.IdHash) + idHash := new(types2.IdHash) err = idHash.FromId(id) if chk.E(err) { t.Fatalf("Failed to create IdHash: %v", err) @@ -125,19 +125,19 @@ func testPubkeyFilter(t *testing.T) { } // Create the expected indexes - p := new(types.PubHash) + p := new(types2.PubHash) err = p.FromPubkey(pubkey) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.PubkeyEnc(p, caStart, nil) // End index uses Until - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(f.Until.V)) expectedEndIdx := indexes.PubkeyEnc(p, caEnd, nil) @@ -158,12 +158,12 @@ func testCreatedAtFilter(t *testing.T) { } // Create the expected start index (using Since) - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.CreatedAtEnc(caStart, nil) // Create the expected end index (using math.MaxInt64 since Until is not specified) - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.CreatedAtEnc(caEnd, nil) @@ -184,12 +184,12 @@ func testCreatedAtUntilFilter(t *testing.T) { } // Create the expected start index (using 0 since Since is not specified) - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(0)) expectedStartIdx := indexes.CreatedAtEnc(caStart, nil) // Create the expected end index (using Until) - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(f.Until.V)) expectedEndIdx := indexes.CreatedAtEnc(caEnd, nil) @@ -222,23 +222,23 @@ func testPubkeyTagFilter(t *testing.T) { } // Create the expected indexes - p := new(types.PubHash) + p := new(types2.PubHash) err = p.FromPubkey(pubkey) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } - key := new(types.Letter) + key := new(types2.Letter) key.Set(tagKey[0]) - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(tagValue) // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.TagPubkeyEnc(key, valueHash, p, caStart, nil) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.TagPubkeyEnc(key, valueHash, p, caEnd, nil) @@ -266,18 +266,18 @@ func testTagFilter(t *testing.T) { } // Create the expected indexes - key := new(types.Letter) + key := new(types2.Letter) key.Set(tagKey[0]) - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(tagValue) // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.TagEnc(key, valueHash, caStart, nil) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.TagEnc(key, valueHash, caEnd, nil) @@ -299,16 +299,16 @@ func testKindFilter(t *testing.T) { } // Create the expected indexes - k := new(types.Uint16) + k := new(types2.Uint16) k.Set(1) // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.KindEnc(k, caStart, nil) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.KindEnc(k, caEnd, nil) @@ -335,21 +335,21 @@ func testKindPubkeyFilter(t *testing.T) { } // Create the expected indexes - k := new(types.Uint16) + k := new(types2.Uint16) k.Set(1) - p := new(types.PubHash) + p := new(types2.PubHash) err = p.FromPubkey(pubkey) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.KindPubkeyEnc(k, p, caStart, nil) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.KindPubkeyEnc(k, p, caEnd, nil) @@ -378,20 +378,20 @@ func testKindTagFilter(t *testing.T) { } // Create the expected indexes - k := new(types.Uint16) + k := new(types2.Uint16) k.Set(1) - key := new(types.Letter) + key := new(types2.Letter) key.Set(tagKey[0]) - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(tagValue) // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.TagKindEnc(key, valueHash, k, caStart, nil) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.TagKindEnc(key, valueHash, k, caEnd, nil) @@ -428,29 +428,29 @@ func testMultipleKindPubkeyFilter(t *testing.T) { } // Create the expected indexes - k1 := new(types.Uint16) + k1 := new(types2.Uint16) k1.Set(1) - k2 := new(types.Uint16) + k2 := new(types2.Uint16) k2.Set(2) - p1 := new(types.PubHash) + p1 := new(types2.PubHash) err = p1.FromPubkey(pubkey1) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } - p2 := new(types.PubHash) + p2 := new(types2.PubHash) err = p2.FromPubkey(pubkey2) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) // Create all expected combinations @@ -560,27 +560,27 @@ func testKindPubkeyTagFilter(t *testing.T) { } // Create the expected indexes - k := new(types.Uint16) + k := new(types2.Uint16) k.Set(1) - p := new(types.PubHash) + p := new(types2.PubHash) err = p.FromPubkey(pubkey) if chk.E(err) { t.Fatalf("Failed to create PubHash: %v", err) } - key := new(types.Letter) + key := new(types2.Letter) key.Set(tagKey[0]) - valueHash := new(types.Ident) + valueHash := new(types2.Ident) valueHash.FromIdent(tagValue) // Start index uses Since - caStart := new(types.Uint64) + caStart := new(types2.Uint64) caStart.Set(uint64(f.Since.V)) expectedStartIdx := indexes.TagKindPubkeyEnc( key, valueHash, k, p, caStart, nil, ) // End index uses math.MaxInt64 since Until is not specified - caEnd := new(types.Uint64) + caEnd := new(types2.Uint64) caEnd.Set(uint64(math.MaxInt64)) expectedEndIdx := indexes.TagKindPubkeyEnc( key, valueHash, k, p, caEnd, nil, diff --git a/database/get-serial-by-id.go b/pkg/database/get-serial-by-id.go similarity index 85% rename from database/get-serial-by-id.go rename to pkg/database/get-serial-by-id.go index 95b9433..850a0bc 100644 --- a/database/get-serial-by-id.go +++ b/pkg/database/get-serial-by-id.go @@ -3,11 +3,11 @@ package database import ( "bytes" "github.com/dgraph-io/badger/v4" - "orly.dev/database/indexes/types" - "orly.dev/encoders/filter" - "orly.dev/encoders/tag" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) func (d *D) GetSerialById(id []byte) (ser *types.Uint40, err error) { diff --git a/database/get-serial-by-id_test.go b/pkg/database/get-serial-by-id_test.go similarity index 94% rename from database/get-serial-by-id_test.go rename to pkg/database/get-serial-by-id_test.go index 21f3693..4962425 100644 --- a/database/get-serial-by-id_test.go +++ b/pkg/database/get-serial-by-id_test.go @@ -3,10 +3,10 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/get-serials-by-range.go b/pkg/database/get-serials-by-range.go similarity index 92% rename from database/get-serials-by-range.go rename to pkg/database/get-serials-by-range.go index c778936..dd7669a 100644 --- a/database/get-serials-by-range.go +++ b/pkg/database/get-serials-by-range.go @@ -3,8 +3,8 @@ package database import ( "bytes" "github.com/dgraph-io/badger/v4" - "orly.dev/database/indexes/types" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/utils/chk" ) func (d *D) GetSerialsByRange(idx Range) ( diff --git a/database/get-serials-by-range_test.go b/pkg/database/get-serials-by-range_test.go similarity index 94% rename from database/get-serials-by-range_test.go rename to pkg/database/get-serials-by-range_test.go index b0dc071..a7017a7 100644 --- a/database/get-serials-by-range_test.go +++ b/pkg/database/get-serials-by-range_test.go @@ -3,16 +3,16 @@ package database import ( "bufio" "bytes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/timestamp" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/indexes/keys.go b/pkg/database/indexes/keys.go similarity index 66% rename from database/indexes/keys.go rename to pkg/database/indexes/keys.go index e11d85a..11eab2a 100644 --- a/database/indexes/keys.go +++ b/pkg/database/indexes/keys.go @@ -2,11 +2,10 @@ package indexes import ( "io" - t "orly.dev/database/indexes/types" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" "reflect" - - "orly.dev/interfaces/codec" ) var counter int @@ -178,11 +177,11 @@ func (t *T) UnmarshalRead(r io.Reader) (err error) { // prefix|5 serial - event in binary format var Event = next() -func EventVars() (ser *t.Uint40) { return new(t.Uint40) } -func EventEnc(ser *t.Uint40) (enc *T) { +func EventVars() (ser *types.Uint40) { return new(types.Uint40) } +func EventEnc(ser *types.Uint40) (enc *T) { return New(NewPrefix(Event), ser) } -func EventDec(ser *t.Uint40) (enc *T) { return New(NewPrefix(), ser) } +func EventDec(ser *types.Uint40) (enc *T) { return New(NewPrefix(), ser) } // Id contains a truncated 8-byte hash of an event index. This is the secondary // key of an event, the primary key is the serial found in the Event. @@ -190,13 +189,13 @@ func EventDec(ser *t.Uint40) (enc *T) { return New(NewPrefix(), ser) } // 3 prefix|8 Id hash|5 serial var Id = next() -func IdVars() (id *t.IdHash, ser *t.Uint40) { - return new(t.IdHash), new(t.Uint40) +func IdVars() (id *types.IdHash, ser *types.Uint40) { + return new(types.IdHash), new(types.Uint40) } -func IdEnc(id *t.IdHash, ser *t.Uint40) (enc *T) { +func IdEnc(id *types.IdHash, ser *types.Uint40) (enc *T) { return New(NewPrefix(Id), id, ser) } -func IdDec(id *t.IdHash, ser *t.Uint40) (enc *T) { +func IdDec(id *types.IdHash, ser *types.Uint40) (enc *T) { return New(NewPrefix(), id, ser) } @@ -207,17 +206,17 @@ func IdDec(id *t.IdHash, ser *t.Uint40) (enc *T) { var FullIdPubkey = next() func FullIdPubkeyVars() ( - ser *t.Uint40, fid *t.Id, p *t.PubHash, ca *t.Uint64, + ser *types.Uint40, fid *types.Id, p *types.PubHash, ca *types.Uint64, ) { - return new(t.Uint40), new(t.Id), new(t.PubHash), new(t.Uint64) + return new(types.Uint40), new(types.Id), new(types.PubHash), new(types.Uint64) } func FullIdPubkeyEnc( - ser *t.Uint40, fid *t.Id, p *t.PubHash, ca *t.Uint64, + ser *types.Uint40, fid *types.Id, p *types.PubHash, ca *types.Uint64, ) (enc *T) { return New(NewPrefix(FullIdPubkey), ser, fid, p, ca) } func FullIdPubkeyDec( - ser *t.Uint40, fid *t.Id, p *t.PubHash, ca *t.Uint64, + ser *types.Uint40, fid *types.Id, p *types.PubHash, ca *types.Uint64, ) (enc *T) { return New(NewPrefix(), ser, fid, p, ca) } @@ -227,13 +226,13 @@ func FullIdPubkeyDec( // 3 prefix|8 timestamp|5 serial var CreatedAt = next() -func CreatedAtVars() (ca *t.Uint64, ser *t.Uint40) { - return new(t.Uint64), new(t.Uint40) +func CreatedAtVars() (ca *types.Uint64, ser *types.Uint40) { + return new(types.Uint64), new(types.Uint40) } -func CreatedAtEnc(ca *t.Uint64, ser *t.Uint40) (enc *T) { +func CreatedAtEnc(ca *types.Uint64, ser *types.Uint40) (enc *T) { return New(NewPrefix(CreatedAt), ca, ser) } -func CreatedAtDec(ca *t.Uint64, ser *t.Uint40) (enc *T) { +func CreatedAtDec(ca *types.Uint64, ser *types.Uint40) (enc *T) { return New(NewPrefix(), ca, ser) } @@ -242,13 +241,13 @@ func CreatedAtDec(ca *t.Uint64, ser *t.Uint40) (enc *T) { // 3 prefix|2 kind|8 timestamp|5 serial var Kind = next() -func KindVars() (ki *t.Uint16, ca *t.Uint64, ser *t.Uint40) { - return new(t.Uint16), new(t.Uint64), new(t.Uint40) +func KindVars() (ki *types.Uint16, ca *types.Uint64, ser *types.Uint40) { + return new(types.Uint16), new(types.Uint64), new(types.Uint40) } -func KindEnc(ki *t.Uint16, ca *t.Uint64, ser *t.Uint40) (enc *T) { +func KindEnc(ki *types.Uint16, ca *types.Uint64, ser *types.Uint40) (enc *T) { return New(NewPrefix(Kind), ki, ca, ser) } -func KindDec(ki *t.Uint16, ca *t.Uint64, ser *t.Uint40) (enc *T) { +func KindDec(ki *types.Uint16, ca *types.Uint64, ser *types.Uint40) (enc *T) { return New(NewPrefix(), ki, ca, ser) } @@ -258,13 +257,13 @@ func KindDec(ki *t.Uint16, ca *t.Uint64, ser *t.Uint40) (enc *T) { // 3 prefix|8 pubkey hash|8 timestamp|5 serial var Pubkey = next() -func PubkeyVars() (p *t.PubHash, ca *t.Uint64, ser *t.Uint40) { - return new(t.PubHash), new(t.Uint64), new(t.Uint40) +func PubkeyVars() (p *types.PubHash, ca *types.Uint64, ser *types.Uint40) { + return new(types.PubHash), new(types.Uint64), new(types.Uint40) } -func PubkeyEnc(p *t.PubHash, ca *t.Uint64, ser *t.Uint40) (enc *T) { +func PubkeyEnc(p *types.PubHash, ca *types.Uint64, ser *types.Uint40) (enc *T) { return New(NewPrefix(Pubkey), p, ca, ser) } -func PubkeyDec(p *t.PubHash, ca *t.Uint64, ser *t.Uint40) (enc *T) { +func PubkeyDec(p *types.PubHash, ca *types.Uint64, ser *types.Uint40) (enc *T) { return New(NewPrefix(), p, ca, ser) } @@ -274,17 +273,17 @@ func PubkeyDec(p *t.PubHash, ca *t.Uint64, ser *t.Uint40) (enc *T) { var KindPubkey = next() func KindPubkeyVars() ( - ki *t.Uint16, p *t.PubHash, ca *t.Uint64, ser *t.Uint40, + ki *types.Uint16, p *types.PubHash, ca *types.Uint64, ser *types.Uint40, ) { - return new(t.Uint16), new(t.PubHash), new(t.Uint64), new(t.Uint40) + return new(types.Uint16), new(types.PubHash), new(types.Uint64), new(types.Uint40) } func KindPubkeyEnc( - ki *t.Uint16, p *t.PubHash, ca *t.Uint64, ser *t.Uint40, + ki *types.Uint16, p *types.PubHash, ca *types.Uint64, ser *types.Uint40, ) (enc *T) { return New(NewPrefix(KindPubkey), ki, p, ca, ser) } func KindPubkeyDec( - ki *t.Uint16, p *t.PubHash, ca *t.Uint64, ser *t.Uint40, + ki *types.Uint16, p *types.PubHash, ca *types.Uint64, ser *types.Uint40, ) (enc *T) { return New(NewPrefix(), ki, p, ca, ser) } @@ -295,17 +294,17 @@ func KindPubkeyDec( var Tag = next() func TagVars() ( - k *t.Letter, v *t.Ident, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, ca *types.Uint64, ser *types.Uint40, ) { - return new(t.Letter), new(t.Ident), new(t.Uint64), new(t.Uint40) + return new(types.Letter), new(types.Ident), new(types.Uint64), new(types.Uint40) } func TagEnc( - k *t.Letter, v *t.Ident, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, ca *types.Uint64, ser *types.Uint40, ) (enc *T) { return New(NewPrefix(Tag), k, v, ca, ser) } func TagDec( - k *t.Letter, v *t.Ident, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, ca *types.Uint64, ser *types.Uint40, ) (enc *T) { return New(NewPrefix(), k, v, ca, ser) } @@ -316,17 +315,20 @@ func TagDec( var TagKind = next() func TagKindVars() ( - k *t.Letter, v *t.Ident, ki *t.Uint16, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, ki *types.Uint16, ca *types.Uint64, + ser *types.Uint40, ) { - return new(t.Letter), new(t.Ident), new(t.Uint16), new(t.Uint64), new(t.Uint40) + return new(types.Letter), new(types.Ident), new(types.Uint16), new(types.Uint64), new(types.Uint40) } func TagKindEnc( - k *t.Letter, v *t.Ident, ki *t.Uint16, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, ki *types.Uint16, ca *types.Uint64, + ser *types.Uint40, ) (enc *T) { return New(NewPrefix(TagKind), ki, k, v, ca, ser) } func TagKindDec( - k *t.Letter, v *t.Ident, ki *t.Uint16, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, ki *types.Uint16, ca *types.Uint64, + ser *types.Uint40, ) (enc *T) { return New(NewPrefix(), ki, k, v, ca, ser) } @@ -337,17 +339,20 @@ func TagKindDec( var TagPubkey = next() func TagPubkeyVars() ( - k *t.Letter, v *t.Ident, p *t.PubHash, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, p *types.PubHash, ca *types.Uint64, + ser *types.Uint40, ) { - return new(t.Letter), new(t.Ident), new(t.PubHash), new(t.Uint64), new(t.Uint40) + return new(types.Letter), new(types.Ident), new(types.PubHash), new(types.Uint64), new(types.Uint40) } func TagPubkeyEnc( - k *t.Letter, v *t.Ident, p *t.PubHash, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, p *types.PubHash, ca *types.Uint64, + ser *types.Uint40, ) (enc *T) { return New(NewPrefix(TagPubkey), p, k, v, ca, ser) } func TagPubkeyDec( - k *t.Letter, v *t.Ident, p *t.PubHash, ca *t.Uint64, ser *t.Uint40, + k *types.Letter, v *types.Ident, p *types.PubHash, ca *types.Uint64, + ser *types.Uint40, ) (enc *T) { return New(NewPrefix(), p, k, v, ca, ser) } @@ -358,20 +363,23 @@ func TagPubkeyDec( var TagKindPubkey = next() func TagKindPubkeyVars() ( - k *t.Letter, v *t.Ident, ki *t.Uint16, p *t.PubHash, ca *t.Uint64, - ser *t.Uint40, + k *types.Letter, v *types.Ident, ki *types.Uint16, p *types.PubHash, + ca *types.Uint64, + ser *types.Uint40, ) { - return new(t.Letter), new(t.Ident), new(t.Uint16), new(t.PubHash), new(t.Uint64), new(t.Uint40) + return new(types.Letter), new(types.Ident), new(types.Uint16), new(types.PubHash), new(types.Uint64), new(types.Uint40) } func TagKindPubkeyEnc( - k *t.Letter, v *t.Ident, ki *t.Uint16, p *t.PubHash, ca *t.Uint64, - ser *t.Uint40, + k *types.Letter, v *types.Ident, ki *types.Uint16, p *types.PubHash, + ca *types.Uint64, + ser *types.Uint40, ) (enc *T) { return New(NewPrefix(TagKindPubkey), ki, p, k, v, ca, ser) } func TagKindPubkeyDec( - k *t.Letter, v *t.Ident, ki *t.Uint16, p *t.PubHash, ca *t.Uint64, - ser *t.Uint40, + k *types.Letter, v *types.Ident, ki *types.Uint16, p *types.PubHash, + ca *types.Uint64, + ser *types.Uint40, ) (enc *T) { return New(NewPrefix(), ki, p, k, v, ca, ser) } diff --git a/database/indexes/keys_test.go b/pkg/database/indexes/keys_test.go similarity index 99% rename from database/indexes/keys_test.go rename to pkg/database/indexes/keys_test.go index a5f4c09..59896d3 100644 --- a/database/indexes/keys_test.go +++ b/pkg/database/indexes/keys_test.go @@ -3,9 +3,9 @@ package indexes import ( "bytes" "io" - "orly.dev/database/indexes/types" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/database/indexes/types/endianness_test.go b/pkg/database/indexes/types/endianness_test.go similarity index 100% rename from database/indexes/types/endianness_test.go rename to pkg/database/indexes/types/endianness_test.go diff --git a/database/indexes/types/fullid.go b/pkg/database/indexes/types/fullid.go similarity index 95% rename from database/indexes/types/fullid.go rename to pkg/database/indexes/types/fullid.go index f7ef804..1285a79 100644 --- a/database/indexes/types/fullid.go +++ b/pkg/database/indexes/types/fullid.go @@ -1,10 +1,9 @@ package types import ( - "io" - "orly.dev/utils/errorf" - "github.com/minio/sha256-simd" + "io" + "orly.dev/pkg/utils/errorf" ) const IdLen = sha256.Size diff --git a/database/indexes/types/fullid_test.go b/pkg/database/indexes/types/fullid_test.go similarity index 97% rename from database/indexes/types/fullid_test.go rename to pkg/database/indexes/types/fullid_test.go index 0e6709f..daf3bd6 100644 --- a/database/indexes/types/fullid_test.go +++ b/pkg/database/indexes/types/fullid_test.go @@ -2,8 +2,8 @@ package types import ( "bytes" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "testing" "github.com/minio/sha256-simd" diff --git a/database/indexes/types/identhash.go b/pkg/database/indexes/types/identhash.go similarity index 100% rename from database/indexes/types/identhash.go rename to pkg/database/indexes/types/identhash.go diff --git a/database/indexes/types/identhash_test.go b/pkg/database/indexes/types/identhash_test.go similarity index 97% rename from database/indexes/types/identhash_test.go rename to pkg/database/indexes/types/identhash_test.go index c73e32d..c95b241 100644 --- a/database/indexes/types/identhash_test.go +++ b/pkg/database/indexes/types/identhash_test.go @@ -2,8 +2,8 @@ package types import ( "bytes" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "testing" "github.com/minio/sha256-simd" diff --git a/database/indexes/types/idhash.go b/pkg/database/indexes/types/idhash.go similarity index 95% rename from database/indexes/types/idhash.go rename to pkg/database/indexes/types/idhash.go index 15be8ba..d27b28a 100644 --- a/database/indexes/types/idhash.go +++ b/pkg/database/indexes/types/idhash.go @@ -2,13 +2,11 @@ package types import ( "encoding/base64" - "io" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "github.com/minio/sha256-simd" - - "orly.dev/encoders/hex" + "io" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) const IdHashLen = 8 diff --git a/database/indexes/types/idhash_test.go b/pkg/database/indexes/types/idhash_test.go similarity index 97% rename from database/indexes/types/idhash_test.go rename to pkg/database/indexes/types/idhash_test.go index 82d5167..e5436ec 100644 --- a/database/indexes/types/idhash_test.go +++ b/pkg/database/indexes/types/idhash_test.go @@ -3,12 +3,12 @@ package types import ( "bytes" "encoding/base64" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "testing" "github.com/minio/sha256-simd" - "orly.dev/encoders/hex" ) func TestFromIdHash(t *testing.T) { diff --git a/database/indexes/types/letter.go b/pkg/database/indexes/types/letter.go similarity index 94% rename from database/indexes/types/letter.go rename to pkg/database/indexes/types/letter.go index d5b8cee..0504f25 100644 --- a/database/indexes/types/letter.go +++ b/pkg/database/indexes/types/letter.go @@ -2,7 +2,7 @@ package types import ( "io" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" ) const LetterLen = 1 diff --git a/database/indexes/types/letter_test.go b/pkg/database/indexes/types/letter_test.go similarity index 97% rename from database/indexes/types/letter_test.go rename to pkg/database/indexes/types/letter_test.go index b794641..99c8389 100644 --- a/database/indexes/types/letter_test.go +++ b/pkg/database/indexes/types/letter_test.go @@ -2,8 +2,8 @@ package types import ( "bytes" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/database/indexes/types/pubhash.go b/pkg/database/indexes/types/pubhash.go similarity index 90% rename from database/indexes/types/pubhash.go rename to pkg/database/indexes/types/pubhash.go index 6bed9a9..3f80460 100644 --- a/database/indexes/types/pubhash.go +++ b/pkg/database/indexes/types/pubhash.go @@ -1,13 +1,12 @@ package types import ( - "io" - "orly.dev/crypto/ec/schnorr" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "github.com/minio/sha256-simd" - "orly.dev/encoders/hex" + "io" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) const PubHashLen = 8 diff --git a/database/indexes/types/pubhash_test.go b/pkg/database/indexes/types/pubhash_test.go similarity index 97% rename from database/indexes/types/pubhash_test.go rename to pkg/database/indexes/types/pubhash_test.go index 656f79a..e789227 100644 --- a/database/indexes/types/pubhash_test.go +++ b/pkg/database/indexes/types/pubhash_test.go @@ -2,13 +2,13 @@ package types import ( "bytes" - "orly.dev/crypto/ec/schnorr" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "testing" "github.com/minio/sha256-simd" - "orly.dev/encoders/hex" ) func TestPubHash_FromPubkey(t *testing.T) { diff --git a/database/indexes/types/timestamp.go b/pkg/database/indexes/types/timestamp.go similarity index 94% rename from database/indexes/types/timestamp.go rename to pkg/database/indexes/types/timestamp.go index f8aea53..82bfb08 100644 --- a/database/indexes/types/timestamp.go +++ b/pkg/database/indexes/types/timestamp.go @@ -3,8 +3,8 @@ package types import ( "bytes" "io" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" ) const TimestampLen = 8 diff --git a/database/indexes/types/timestamp_test.go b/pkg/database/indexes/types/timestamp_test.go similarity index 98% rename from database/indexes/types/timestamp_test.go rename to pkg/database/indexes/types/timestamp_test.go index 9a431ed..787f3c0 100644 --- a/database/indexes/types/timestamp_test.go +++ b/pkg/database/indexes/types/timestamp_test.go @@ -2,8 +2,8 @@ package types import ( "bytes" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "testing" "time" ) diff --git a/database/indexes/types/uint16.go b/pkg/database/indexes/types/uint16.go similarity index 100% rename from database/indexes/types/uint16.go rename to pkg/database/indexes/types/uint16.go diff --git a/database/indexes/types/uint16_test.go b/pkg/database/indexes/types/uint16_test.go similarity index 98% rename from database/indexes/types/uint16_test.go rename to pkg/database/indexes/types/uint16_test.go index 281a2fe..85b746a 100644 --- a/database/indexes/types/uint16_test.go +++ b/pkg/database/indexes/types/uint16_test.go @@ -3,8 +3,8 @@ package types import ( "bytes" "math" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "reflect" "testing" diff --git a/database/indexes/types/uint24.go b/pkg/database/indexes/types/uint24.go similarity index 99% rename from database/indexes/types/uint24.go rename to pkg/database/indexes/types/uint24.go index 6bf1367..b04783c 100644 --- a/database/indexes/types/uint24.go +++ b/pkg/database/indexes/types/uint24.go @@ -3,7 +3,7 @@ package types import ( "errors" "io" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" ) // MaxUint24 is the maximum value of a 24-bit unsigned integer: 2^24 - 1. diff --git a/database/indexes/types/uint24_test.go b/pkg/database/indexes/types/uint24_test.go similarity index 98% rename from database/indexes/types/uint24_test.go rename to pkg/database/indexes/types/uint24_test.go index 4926766..5db14fa 100644 --- a/database/indexes/types/uint24_test.go +++ b/pkg/database/indexes/types/uint24_test.go @@ -1,8 +1,8 @@ package types import ( - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "reflect" "testing" ) diff --git a/database/indexes/types/uint32.go b/pkg/database/indexes/types/uint32.go similarity index 100% rename from database/indexes/types/uint32.go rename to pkg/database/indexes/types/uint32.go diff --git a/database/indexes/types/uint32_test.go b/pkg/database/indexes/types/uint32_test.go similarity index 98% rename from database/indexes/types/uint32_test.go rename to pkg/database/indexes/types/uint32_test.go index d81f846..68e72b8 100644 --- a/database/indexes/types/uint32_test.go +++ b/pkg/database/indexes/types/uint32_test.go @@ -3,8 +3,8 @@ package types import ( "bytes" "math" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "reflect" "testing" diff --git a/database/indexes/types/uint40.go b/pkg/database/indexes/types/uint40.go similarity index 99% rename from database/indexes/types/uint40.go rename to pkg/database/indexes/types/uint40.go index 22f226f..6ca5152 100644 --- a/database/indexes/types/uint40.go +++ b/pkg/database/indexes/types/uint40.go @@ -3,7 +3,7 @@ package types import ( "errors" "io" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" ) // MaxUint40 is the maximum value of a 40-bit unsigned integer: 2^40 - 1. diff --git a/database/indexes/types/uint40_test.go b/pkg/database/indexes/types/uint40_test.go similarity index 98% rename from database/indexes/types/uint40_test.go rename to pkg/database/indexes/types/uint40_test.go index 19d5b99..46c7843 100644 --- a/database/indexes/types/uint40_test.go +++ b/pkg/database/indexes/types/uint40_test.go @@ -1,8 +1,8 @@ package types import ( - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "reflect" "testing" ) diff --git a/database/indexes/types/uint64.go b/pkg/database/indexes/types/uint64.go similarity index 100% rename from database/indexes/types/uint64.go rename to pkg/database/indexes/types/uint64.go diff --git a/database/indexes/types/uint64_test.go b/pkg/database/indexes/types/uint64_test.go similarity index 98% rename from database/indexes/types/uint64_test.go rename to pkg/database/indexes/types/uint64_test.go index 0ffe7f8..214ca86 100644 --- a/database/indexes/types/uint64_test.go +++ b/pkg/database/indexes/types/uint64_test.go @@ -3,8 +3,8 @@ package types import ( "bytes" "math" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "reflect" "testing" diff --git a/database/indexes/types/word.go b/pkg/database/indexes/types/word.go similarity index 96% rename from database/indexes/types/word.go rename to pkg/database/indexes/types/word.go index f2a2d30..7aa41f7 100644 --- a/database/indexes/types/word.go +++ b/pkg/database/indexes/types/word.go @@ -2,8 +2,8 @@ package types import ( "io" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" ) var zero = []byte{0x00} diff --git a/database/indexes/types/word_test.go b/pkg/database/indexes/types/word_test.go similarity index 97% rename from database/indexes/types/word_test.go rename to pkg/database/indexes/types/word_test.go index 72670cf..9fa7dd3 100644 --- a/database/indexes/types/word_test.go +++ b/pkg/database/indexes/types/word_test.go @@ -2,8 +2,8 @@ package types_test import ( "bytes" - "orly.dev/database/indexes/types" - "orly.dev/utils/chk" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/database/logger.go b/pkg/database/logger.go similarity index 97% rename from database/logger.go rename to pkg/database/logger.go index d53254b..0840416 100644 --- a/database/logger.go +++ b/pkg/database/logger.go @@ -2,12 +2,12 @@ package database import ( "fmt" - "orly.dev/utils/log" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" "runtime" "strings" "go.uber.org/atomic" - "orly.dev/utils/lol" ) // NewLogger creates a new badger logger. diff --git a/database/query-events-multiple-param-replaceable_test.go b/pkg/database/query-events-multiple-param-replaceable_test.go similarity index 93% rename from database/query-events-multiple-param-replaceable_test.go rename to pkg/database/query-events-multiple-param-replaceable_test.go index 05e9c60..97b77b8 100644 --- a/database/query-events-multiple-param-replaceable_test.go +++ b/pkg/database/query-events-multiple-param-replaceable_test.go @@ -3,19 +3,18 @@ package database import ( "bytes" "fmt" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" "os" "testing" - - "orly.dev/crypto/p256k" - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" - "orly.dev/utils/chk" ) // TestMultipleParameterizedReplaceableEvents tests that when multiple parameterized diff --git a/database/query-events.go b/pkg/database/query-events.go similarity index 96% rename from database/query-events.go rename to pkg/database/query-events.go index ef2ca3b..c0ccf3d 100644 --- a/database/query-events.go +++ b/pkg/database/query-events.go @@ -2,16 +2,16 @@ package database import ( "bytes" - "orly.dev/crypto/sha256" - "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "sort" "strconv" ) diff --git a/database/query-events_test.go b/pkg/database/query-events_test.go similarity index 97% rename from database/query-events_test.go rename to pkg/database/query-events_test.go index 19d211e..df1a5b5 100644 --- a/database/query-events_test.go +++ b/pkg/database/query-events_test.go @@ -4,18 +4,18 @@ import ( "bufio" "bytes" "fmt" - "orly.dev/crypto/p256k" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-authors-tags_test.go b/pkg/database/query-for-authors-tags_test.go similarity index 93% rename from database/query-for-authors-tags_test.go rename to pkg/database/query-for-authors-tags_test.go index 38098ad..f29847e 100644 --- a/database/query-for-authors-tags_test.go +++ b/pkg/database/query-for-authors-tags_test.go @@ -3,14 +3,14 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-created-at_test.go b/pkg/database/query-for-created-at_test.go similarity index 95% rename from database/query-for-created-at_test.go rename to pkg/database/query-for-created-at_test.go index 476837d..a32658b 100644 --- a/database/query-for-created-at_test.go +++ b/pkg/database/query-for-created-at_test.go @@ -3,13 +3,13 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/timestamp" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-ids.go b/pkg/database/query-for-ids.go similarity index 93% rename from database/query-for-ids.go rename to pkg/database/query-for-ids.go index f3f61ed..2b18a85 100644 --- a/database/query-for-ids.go +++ b/pkg/database/query-for-ids.go @@ -1,12 +1,12 @@ package database import ( - "orly.dev/database/indexes/types" - "orly.dev/encoders/filter" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" - "orly.dev/utils/errorf" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" "sort" ) diff --git a/database/query-for-ids_test.go b/pkg/database/query-for-ids_test.go similarity index 97% rename from database/query-for-ids_test.go rename to pkg/database/query-for-ids_test.go index 2772372..55d5a80 100644 --- a/database/query-for-ids_test.go +++ b/pkg/database/query-for-ids_test.go @@ -3,17 +3,17 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-kinds-authors-tags_test.go b/pkg/database/query-for-kinds-authors-tags_test.go similarity index 93% rename from database/query-for-kinds-authors-tags_test.go rename to pkg/database/query-for-kinds-authors-tags_test.go index f2ee289..f69bf11 100644 --- a/database/query-for-kinds-authors-tags_test.go +++ b/pkg/database/query-for-kinds-authors-tags_test.go @@ -3,15 +3,15 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-kinds-authors_test.go b/pkg/database/query-for-kinds-authors_test.go similarity index 90% rename from database/query-for-kinds-authors_test.go rename to pkg/database/query-for-kinds-authors_test.go index 885a7cd..a111f8a 100644 --- a/database/query-for-kinds-authors_test.go +++ b/pkg/database/query-for-kinds-authors_test.go @@ -3,15 +3,15 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-kinds-tags_test.go b/pkg/database/query-for-kinds-tags_test.go similarity index 92% rename from database/query-for-kinds-tags_test.go rename to pkg/database/query-for-kinds-tags_test.go index 50c536d..6e0a118 100644 --- a/database/query-for-kinds-tags_test.go +++ b/pkg/database/query-for-kinds-tags_test.go @@ -3,15 +3,15 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-kinds_test.go b/pkg/database/query-for-kinds_test.go similarity index 90% rename from database/query-for-kinds_test.go rename to pkg/database/query-for-kinds_test.go index df0916e..ed47848 100644 --- a/database/query-for-kinds_test.go +++ b/pkg/database/query-for-kinds_test.go @@ -3,14 +3,14 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-serials.go b/pkg/database/query-for-serials.go similarity index 87% rename from database/query-for-serials.go rename to pkg/database/query-for-serials.go index a948ea7..85fb676 100644 --- a/database/query-for-serials.go +++ b/pkg/database/query-for-serials.go @@ -1,11 +1,11 @@ package database import ( - "orly.dev/database/indexes/types" - "orly.dev/encoders/filter" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "sort" ) diff --git a/database/query-for-serials_test.go b/pkg/database/query-for-serials_test.go similarity index 94% rename from database/query-for-serials_test.go rename to pkg/database/query-for-serials_test.go index 784235e..fc2d968 100644 --- a/database/query-for-serials_test.go +++ b/pkg/database/query-for-serials_test.go @@ -3,16 +3,16 @@ package database import ( "bufio" "bytes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/timestamp" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/query-for-tags_test.go b/pkg/database/query-for-tags_test.go similarity index 93% rename from database/query-for-tags_test.go rename to pkg/database/query-for-tags_test.go index fd4dbc0..3abe2a7 100644 --- a/database/query-for-tags_test.go +++ b/pkg/database/query-for-tags_test.go @@ -3,14 +3,14 @@ package database import ( "bufio" "bytes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/filter" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" ) diff --git a/database/save-event.go b/pkg/database/save-event.go similarity index 90% rename from database/save-event.go rename to pkg/database/save-event.go index 87662d0..908ba58 100644 --- a/database/save-event.go +++ b/pkg/database/save-event.go @@ -3,20 +3,20 @@ package database import ( "bytes" "github.com/dgraph-io/badger/v4" - "orly.dev/database/indexes" - "orly.dev/database/indexes/types" - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tag/atag" - "orly.dev/encoders/tags" - "orly.dev/interfaces/store" - "orly.dev/utils/chk" - "orly.dev/utils/context" - "orly.dev/utils/errorf" + "orly.dev/pkg/database/indexes" + "orly.dev/pkg/database/indexes/types" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tag/atag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" "sort" ) diff --git a/database/save-event_test.go b/pkg/database/save-event_test.go similarity index 93% rename from database/save-event_test.go rename to pkg/database/save-event_test.go index 6ba1d8b..cc84cba 100644 --- a/database/save-event_test.go +++ b/pkg/database/save-event_test.go @@ -3,16 +3,16 @@ package database import ( "bufio" "bytes" - "orly.dev/crypto/p256k" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" - "orly.dev/utils/chk" - "orly.dev/utils/context" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" "os" "testing" "time" diff --git a/encoders/bech32encoding/doc.go b/pkg/encoders/bech32encoding/doc.go similarity index 100% rename from encoders/bech32encoding/doc.go rename to pkg/encoders/bech32encoding/doc.go diff --git a/encoders/bech32encoding/keys.go b/pkg/encoders/bech32encoding/keys.go similarity index 86% rename from encoders/bech32encoding/keys.go rename to pkg/encoders/bech32encoding/keys.go index 2aca4b2..4e9d2d6 100644 --- a/encoders/bech32encoding/keys.go +++ b/pkg/encoders/bech32encoding/keys.go @@ -2,14 +2,13 @@ package bech32encoding import ( "bytes" - btcec2 "orly.dev/crypto/ec" - "orly.dev/crypto/ec/bech32" - "orly.dev/crypto/ec/schnorr" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" - "orly.dev/utils/log" - - "orly.dev/encoders/hex" + "orly.dev/pkg/crypto/ec" + "orly.dev/pkg/crypto/ec/bech32" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" ) const ( @@ -46,7 +45,7 @@ func ConvertFromBech32(b5 []byte) (b8 []byte, err error) { } // SecretKeyToNsec encodes an secp256k1 secret key as a Bech32 string (nsec). -func SecretKeyToNsec(sk *secp256k2.SecretKey) (encoded []byte, err error) { +func SecretKeyToNsec(sk *secp256k1.SecretKey) (encoded []byte, err error) { var b5 []byte if b5, err = ConvertForBech32(sk.Serialize()); chk.E(err) { return @@ -55,7 +54,7 @@ func SecretKeyToNsec(sk *secp256k2.SecretKey) (encoded []byte, err error) { } // PublicKeyToNpub encodes a public key as a bech32 string (npub). -func PublicKeyToNpub(pk *secp256k2.PublicKey) (encoded []byte, err error) { +func PublicKeyToNpub(pk *secp256k1.PublicKey) (encoded []byte, err error) { var bits5 []byte pubKeyBytes := schnorr.SerializePubKey(pk) if bits5, err = ConvertForBech32(pubKeyBytes); chk.E(err) { @@ -66,12 +65,12 @@ func PublicKeyToNpub(pk *secp256k2.PublicKey) (encoded []byte, err error) { // NsecToSecretKey decodes a nostr secret key (nsec) and returns the secp256k1 // secret key. -func NsecToSecretKey(encoded []byte) (sk *secp256k2.SecretKey, err error) { +func NsecToSecretKey(encoded []byte) (sk *secp256k1.SecretKey, err error) { var b8 []byte if b8, err = NsecToBytes(encoded); chk.E(err) { return } - sk = secp256k2.SecKeyFromBytes(b8) + sk = secp256k1.SecKeyFromBytes(b8) return } @@ -91,7 +90,7 @@ func NsecToBytes(encoded []byte) (sk []byte, err error) { if sk, err = ConvertFromBech32(b5); chk.E(err) { return } - sk = sk[:secp256k2.SecKeyBytesLen] + sk = sk[:secp256k1.SecKeyBytesLen] return } @@ -117,7 +116,7 @@ func NpubToBytes(encoded []byte) (pk []byte, err error) { // NpubToPublicKey decodes an nostr public key (npub) and returns an secp256k1 // public key. -func NpubToPublicKey(encoded []byte) (pk *secp256k2.PublicKey, err error) { +func NpubToPublicKey(encoded []byte) (pk *secp256k1.PublicKey, err error) { var b5, b8, hrp []byte if hrp, b5, err = bech32.Decode(encoded); chk.E(err) { err = log.E.Err("ERROR: '%s'", err) @@ -140,7 +139,7 @@ func NpubToPublicKey(encoded []byte) (pk *secp256k2.PublicKey, err error) { // HexToPublicKey decodes a string that should be a 64 character long hex // encoded public key into a btcec.PublicKey that can be used to verify a // signature or encode to Bech32. -func HexToPublicKey(pk string) (p *btcec2.PublicKey, err error) { +func HexToPublicKey(pk string) (p *btcec.PublicKey, err error) { if len(pk) != HexKeyLen { err = log.E.Err( "secret key is %d bytes, must be %d", len(pk), @@ -161,7 +160,7 @@ func HexToPublicKey(pk string) (p *btcec2.PublicKey, err error) { // HexToSecretKey decodes a string that should be a 64 character long hex // encoded public key into a btcec.PublicKey that can be used to verify a // signature or encode to Bech32. -func HexToSecretKey(sk []byte) (s *btcec2.SecretKey, err error) { +func HexToSecretKey(sk []byte) (s *btcec.SecretKey, err error) { if len(sk) != HexKeyLen { err = log.E.Err( "secret key is %d bytes, must be %d", len(sk), @@ -173,7 +172,7 @@ func HexToSecretKey(sk []byte) (s *btcec2.SecretKey, err error) { if _, err = hex.DecBytes(pb, sk); chk.D(err) { return } - if s = secp256k2.SecKeyFromBytes(pb); chk.D(err) { + if s = secp256k1.SecKeyFromBytes(pb); chk.D(err) { return } return @@ -205,7 +204,7 @@ func BinToNpub(b []byte) (s []byte, err error) { // HexToNsec converts a hex encoded secret key to a bech32 encoded nsec. func HexToNsec(sk []byte) (nsec []byte, err error) { - var s *btcec2.SecretKey + var s *btcec.SecretKey if s, err = HexToSecretKey(sk); chk.E(err) { return } @@ -217,8 +216,8 @@ func HexToNsec(sk []byte) (nsec []byte, err error) { // BinToNsec converts a binary secret key to a bech32 encoded nsec. func BinToNsec(sk []byte) (nsec []byte, err error) { - var s *btcec2.SecretKey - s, _ = btcec2.SecKeyFromBytes(sk) + var s *btcec.SecretKey + s, _ = btcec.SecKeyFromBytes(sk) if nsec, err = SecretKeyToNsec(s); chk.E(err) { return } @@ -226,7 +225,7 @@ func BinToNsec(sk []byte) (nsec []byte, err error) { } // SecretKeyToHex converts a secret key to the hex encoding. -func SecretKeyToHex(sk *btcec2.SecretKey) (hexSec []byte) { +func SecretKeyToHex(sk *btcec.SecretKey) (hexSec []byte) { hex.EncBytes(hexSec, sk.Serialize()) return } @@ -234,7 +233,7 @@ func SecretKeyToHex(sk *btcec2.SecretKey) (hexSec []byte) { // NsecToHex converts a bech32 encoded nostr secret key to a raw hexadecimal // string. func NsecToHex(nsec []byte) (hexSec []byte, err error) { - var sk *secp256k2.SecretKey + var sk *secp256k1.SecretKey if sk, err = NsecToSecretKey(nsec); chk.E(err) { return } diff --git a/encoders/bech32encoding/keys_test.go b/pkg/encoders/bech32encoding/keys_test.go similarity index 89% rename from encoders/bech32encoding/keys_test.go rename to pkg/encoders/bech32encoding/keys_test.go index c5afcce..8c36cb5 100644 --- a/encoders/bech32encoding/keys_test.go +++ b/pkg/encoders/bech32encoding/keys_test.go @@ -4,9 +4,9 @@ import ( "bytes" "crypto/rand" "encoding/hex" - "orly.dev/crypto/ec/schnorr" - secp256k2 "orly.dev/crypto/ec/secp256k1" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/utils/chk" "testing" ) @@ -32,11 +32,11 @@ func TestConvertBits(t *testing.T) { func TestSecretKeyToNsec(t *testing.T) { var err error - var sec, reSec *secp256k2.SecretKey + var sec, reSec *secp256k1.SecretKey var nsec, reNsec []byte var secBytes, reSecBytes []byte for i := 0; i < 10000; i++ { - if sec, err = secp256k2.GenerateSecretKey(); chk.E(err) { + if sec, err = secp256k1.GenerateSecretKey(); chk.E(err) { t.Fatalf("error generating key: '%s'", err) return } @@ -72,12 +72,12 @@ func TestSecretKeyToNsec(t *testing.T) { } func TestPublicKeyToNpub(t *testing.T) { var err error - var sec *secp256k2.SecretKey - var pub, rePub *secp256k2.PublicKey + var sec *secp256k1.SecretKey + var pub, rePub *secp256k1.PublicKey var npub, reNpub []byte var pubBytes, rePubBytes []byte for i := 0; i < 10000; i++ { - if sec, err = secp256k2.GenerateSecretKey(); chk.E(err) { + if sec, err = secp256k1.GenerateSecretKey(); chk.E(err) { t.Fatalf("error generating key: '%s'", err) return } diff --git a/encoders/bech32encoding/nip19.go b/pkg/encoders/bech32encoding/nip19.go similarity index 95% rename from encoders/bech32encoding/nip19.go rename to pkg/encoders/bech32encoding/nip19.go index 5aef636..fa66655 100644 --- a/encoders/bech32encoding/nip19.go +++ b/pkg/encoders/bech32encoding/nip19.go @@ -3,18 +3,17 @@ package bech32encoding import ( "bytes" "encoding/binary" - "orly.dev/crypto/ec/bech32" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/sha256" - "orly.dev/encoders/bech32encoding/pointers" - "orly.dev/encoders/bech32encoding/tlv" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - - "orly.dev/encoders/eventid" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" + "orly.dev/pkg/crypto/ec/bech32" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/bech32encoding/pointers" + "orly.dev/pkg/encoders/bech32encoding/tlv" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) var ( diff --git a/encoders/bech32encoding/nip19_test.go b/pkg/encoders/bech32encoding/nip19_test.go similarity index 97% rename from encoders/bech32encoding/nip19_test.go rename to pkg/encoders/bech32encoding/nip19_test.go index 0d85506..803908d 100644 --- a/encoders/bech32encoding/nip19_test.go +++ b/pkg/encoders/bech32encoding/nip19_test.go @@ -2,15 +2,14 @@ package bech32encoding import ( "bytes" - "orly.dev/encoders/bech32encoding/pointers" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/bech32encoding/pointers" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "reflect" "testing" - - "orly.dev/encoders/eventid" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" ) func TestEncodeNpub(t *testing.T) { diff --git a/encoders/bech32encoding/pointers/pointers.go b/pkg/encoders/bech32encoding/pointers/pointers.go similarity index 93% rename from encoders/bech32encoding/pointers/pointers.go rename to pkg/encoders/bech32encoding/pointers/pointers.go index 0ca661c..858b26d 100644 --- a/encoders/bech32encoding/pointers/pointers.go +++ b/pkg/encoders/bech32encoding/pointers/pointers.go @@ -3,8 +3,8 @@ package pointers import ( - "orly.dev/encoders/eventid" - "orly.dev/encoders/kind" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/kind" ) // Profile pointer is a combination of pubkey and relay list. diff --git a/encoders/bech32encoding/tlv/tlv.go b/pkg/encoders/bech32encoding/tlv/tlv.go similarity index 100% rename from encoders/bech32encoding/tlv/tlv.go rename to pkg/encoders/bech32encoding/tlv/tlv.go diff --git a/encoders/codecbuf/README.md b/pkg/encoders/codecbuf/README.md similarity index 100% rename from encoders/codecbuf/README.md rename to pkg/encoders/codecbuf/README.md diff --git a/encoders/codecbuf/pool.go b/pkg/encoders/codecbuf/pool.go similarity index 100% rename from encoders/codecbuf/pool.go rename to pkg/encoders/codecbuf/pool.go diff --git a/encoders/codecbuf/pool_test.go b/pkg/encoders/codecbuf/pool_test.go similarity index 100% rename from encoders/codecbuf/pool_test.go rename to pkg/encoders/codecbuf/pool_test.go diff --git a/encoders/envelopes/authenvelope/authenvelope.go b/pkg/encoders/envelopes/authenvelope/authenvelope.go similarity index 92% rename from encoders/envelopes/authenvelope/authenvelope.go rename to pkg/encoders/envelopes/authenvelope/authenvelope.go index 9598e2d..0e66f51 100644 --- a/encoders/envelopes/authenvelope/authenvelope.go +++ b/pkg/encoders/envelopes/authenvelope/authenvelope.go @@ -4,14 +4,13 @@ package authenvelope import ( "io" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - - envs "orly.dev/encoders/envelopes" - "orly.dev/encoders/event" - "orly.dev/encoders/text" - "orly.dev/interfaces/codec" + envs "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/event" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) // L is the label associated with this type of codec.Envelope. @@ -55,7 +54,7 @@ func (en *Challenge) Marshal(dst []byte) (b []byte) { func(bst []byte) (o []byte) { o = bst o = append(o, '"') - o = text.NostrEscape(o, en.Challenge) + o = text2.NostrEscape(o, en.Challenge) o = append(o, '"') return }, @@ -69,7 +68,7 @@ func (en *Challenge) Marshal(dst []byte) (b []byte) { // correctly escaped by NIP-01 escaping rules. func (en *Challenge) Unmarshal(b []byte) (r []byte, err error) { r = b - if en.Challenge, r, err = text.UnmarshalQuoted(r); chk.E(err) { + if en.Challenge, r, err = text2.UnmarshalQuoted(r); chk.E(err) { return } for ; len(r) >= 0; r = r[1:] { diff --git a/encoders/envelopes/authenvelope/authenvelope_test.go b/pkg/encoders/envelopes/authenvelope/authenvelope_test.go similarity index 93% rename from encoders/envelopes/authenvelope/authenvelope_test.go rename to pkg/encoders/envelopes/authenvelope/authenvelope_test.go index 13e54e4..f7489c5 100644 --- a/encoders/envelopes/authenvelope/authenvelope_test.go +++ b/pkg/encoders/envelopes/authenvelope/authenvelope_test.go @@ -2,12 +2,11 @@ package authenvelope import ( "bytes" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/protocol/auth" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/protocol/auth" ) const relayURL = "wss://example.com" diff --git a/encoders/envelopes/closedenvelope/closedenvelope.go b/pkg/encoders/envelopes/closedenvelope/closedenvelope.go similarity index 90% rename from encoders/envelopes/closedenvelope/closedenvelope.go rename to pkg/encoders/envelopes/closedenvelope/closedenvelope.go index 9b24851..7a4d3e3 100644 --- a/encoders/envelopes/closedenvelope/closedenvelope.go +++ b/pkg/encoders/envelopes/closedenvelope/closedenvelope.go @@ -5,12 +5,11 @@ package closedenvelope import ( "io" - "orly.dev/utils/chk" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/subscription" - "orly.dev/encoders/text" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/subscription" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // L is the label associated with this type of codec.Envelope. @@ -64,7 +63,7 @@ func (en *T) Marshal(dst []byte) (b []byte) { o = en.Subscription.Marshal(o) o = append(o, ',') o = append(o, '"') - o = text.NostrEscape(o, en.Reason) + o = text2.NostrEscape(o, en.Reason) o = append(o, '"') return }, @@ -83,7 +82,7 @@ func (en *T) Unmarshal(b []byte) (r []byte, err error) { if r, err = en.Subscription.Unmarshal(r); chk.E(err) { return } - if en.Reason, r, err = text.UnmarshalQuoted(r); chk.E(err) { + if en.Reason, r, err = text2.UnmarshalQuoted(r); chk.E(err) { return } if r, err = envelopes.SkipToTheEnd(r); chk.E(err) { diff --git a/encoders/envelopes/closedenvelope/closedenvelope_test.go b/pkg/encoders/envelopes/closedenvelope/closedenvelope_test.go similarity index 95% rename from encoders/envelopes/closedenvelope/closedenvelope_test.go rename to pkg/encoders/envelopes/closedenvelope/closedenvelope_test.go index 834aa99..d74e003 100644 --- a/encoders/envelopes/closedenvelope/closedenvelope_test.go +++ b/pkg/encoders/envelopes/closedenvelope/closedenvelope_test.go @@ -2,13 +2,12 @@ package closedenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/subscription" ) var messages = [][]byte{ diff --git a/encoders/envelopes/closeenvelope/closeenvelope.go b/pkg/encoders/envelopes/closeenvelope/closeenvelope.go similarity index 93% rename from encoders/envelopes/closeenvelope/closeenvelope.go rename to pkg/encoders/envelopes/closeenvelope/closeenvelope.go index 872c74a..50d2825 100644 --- a/encoders/envelopes/closeenvelope/closeenvelope.go +++ b/pkg/encoders/envelopes/closeenvelope/closeenvelope.go @@ -4,11 +4,10 @@ package closeenvelope import ( "io" - "orly.dev/utils/chk" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/subscription" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // L is the label associated with this type of codec.Envelope. diff --git a/encoders/envelopes/closeenvelope/closeenvelope_test.go b/pkg/encoders/envelopes/closeenvelope/closeenvelope_test.go similarity index 93% rename from encoders/envelopes/closeenvelope/closeenvelope_test.go rename to pkg/encoders/envelopes/closeenvelope/closeenvelope_test.go index a929f70..bb8b243 100644 --- a/encoders/envelopes/closeenvelope/closeenvelope_test.go +++ b/pkg/encoders/envelopes/closeenvelope/closeenvelope_test.go @@ -2,11 +2,10 @@ package closeenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/subscription" ) func TestMarshalUnmarshal(t *testing.T) { diff --git a/encoders/envelopes/countenvelope/countenvelope.go b/pkg/encoders/envelopes/countenvelope/countenvelope.go similarity index 94% rename from encoders/envelopes/countenvelope/countenvelope.go rename to pkg/encoders/envelopes/countenvelope/countenvelope.go index c77f580..206e07b 100644 --- a/encoders/envelopes/countenvelope/countenvelope.go +++ b/pkg/encoders/envelopes/countenvelope/countenvelope.go @@ -5,15 +5,14 @@ package countenvelope import ( "bytes" "io" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/filters" - "orly.dev/encoders/ints" - "orly.dev/encoders/subscription" - "orly.dev/encoders/text" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // L is the label associated with this type of codec.Envelope. @@ -193,8 +192,7 @@ func (en *Response) Unmarshal(b []byte) (r []byte, err error) { continue } } - if en.ID, err = subscription. - NewId(text.NostrUnescape(r[:i])); chk.E(err) { + if en.ID, err = subscription.NewId(text.NostrUnescape(r[:i])); chk.E(err) { return } diff --git a/encoders/envelopes/countenvelope/countenvelope_test.go b/pkg/encoders/envelopes/countenvelope/countenvelope_test.go similarity index 91% rename from encoders/envelopes/countenvelope/countenvelope_test.go rename to pkg/encoders/envelopes/countenvelope/countenvelope_test.go index 711b364..37636fb 100644 --- a/encoders/envelopes/countenvelope/countenvelope_test.go +++ b/pkg/encoders/envelopes/countenvelope/countenvelope_test.go @@ -2,12 +2,11 @@ package countenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/filters" - "orly.dev/encoders/subscription" ) func TestRequest(t *testing.T) { diff --git a/encoders/envelopes/doc.go b/pkg/encoders/envelopes/doc.go similarity index 100% rename from encoders/envelopes/doc.go rename to pkg/encoders/envelopes/doc.go diff --git a/encoders/envelopes/eoseenvelope/eoseenvelope.go b/pkg/encoders/envelopes/eoseenvelope/eoseenvelope.go similarity index 94% rename from encoders/envelopes/eoseenvelope/eoseenvelope.go rename to pkg/encoders/envelopes/eoseenvelope/eoseenvelope.go index 8e95610..8584dbc 100644 --- a/encoders/envelopes/eoseenvelope/eoseenvelope.go +++ b/pkg/encoders/envelopes/eoseenvelope/eoseenvelope.go @@ -6,11 +6,10 @@ package eoseenvelope import ( "io" - "orly.dev/utils/chk" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/subscription" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // L is the label associated with this type of codec.Envelope. diff --git a/encoders/envelopes/eoseenvelope/eoseenvelope_test.go b/pkg/encoders/envelopes/eoseenvelope/eoseenvelope_test.go similarity index 93% rename from encoders/envelopes/eoseenvelope/eoseenvelope_test.go rename to pkg/encoders/envelopes/eoseenvelope/eoseenvelope_test.go index 5dd9d82..43dd01c 100644 --- a/encoders/envelopes/eoseenvelope/eoseenvelope_test.go +++ b/pkg/encoders/envelopes/eoseenvelope/eoseenvelope_test.go @@ -2,11 +2,10 @@ package eoseenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/subscription" ) func TestMarshalUnmarshal(t *testing.T) { diff --git a/encoders/envelopes/eventenvelope/eventenvelope.go b/pkg/encoders/envelopes/eventenvelope/eventenvelope.go similarity index 95% rename from encoders/envelopes/eventenvelope/eventenvelope.go rename to pkg/encoders/envelopes/eventenvelope/eventenvelope.go index 49893b2..2d38c64 100644 --- a/encoders/envelopes/eventenvelope/eventenvelope.go +++ b/pkg/encoders/envelopes/eventenvelope/eventenvelope.go @@ -4,13 +4,12 @@ package eventenvelope import ( "io" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/event" - "orly.dev/encoders/subscription" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // L is the label associated with this type of codec.Envelope. diff --git a/encoders/envelopes/eventenvelope/eventenvelope_test.go b/pkg/encoders/envelopes/eventenvelope/eventenvelope_test.go similarity index 92% rename from encoders/envelopes/eventenvelope/eventenvelope_test.go rename to pkg/encoders/envelopes/eventenvelope/eventenvelope_test.go index 5692bb0..c042f59 100644 --- a/encoders/envelopes/eventenvelope/eventenvelope_test.go +++ b/pkg/encoders/envelopes/eventenvelope/eventenvelope_test.go @@ -3,13 +3,12 @@ package eventenvelope import ( "bufio" "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/event" - "orly.dev/encoders/event/examples" - "orly.dev/encoders/subscription" ) func TestSubmission(t *testing.T) { diff --git a/encoders/envelopes/identify.go b/pkg/encoders/envelopes/identify.go similarity index 100% rename from encoders/envelopes/identify.go rename to pkg/encoders/envelopes/identify.go diff --git a/encoders/envelopes/messages/messages.go b/pkg/encoders/envelopes/messages/messages.go similarity index 100% rename from encoders/envelopes/messages/messages.go rename to pkg/encoders/envelopes/messages/messages.go diff --git a/encoders/envelopes/noticeenvelope/noticeenvelope.go b/pkg/encoders/envelopes/noticeenvelope/noticeenvelope.go similarity index 89% rename from encoders/envelopes/noticeenvelope/noticeenvelope.go rename to pkg/encoders/envelopes/noticeenvelope/noticeenvelope.go index f81b86a..cc6c8db 100644 --- a/encoders/envelopes/noticeenvelope/noticeenvelope.go +++ b/pkg/encoders/envelopes/noticeenvelope/noticeenvelope.go @@ -5,11 +5,10 @@ package noticeenvelope import ( "io" - "orly.dev/utils/chk" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/text" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // L is the label associated with this type of codec.Envelope. @@ -51,7 +50,7 @@ func (en *T) Marshal(dst []byte) (b []byte) { func(bst []byte) (o []byte) { o = bst o = append(o, '"') - o = text.NostrEscape(o, en.Message) + o = text2.NostrEscape(o, en.Message) o = append(o, '"') return }, @@ -64,7 +63,7 @@ func (en *T) Marshal(dst []byte) (b []byte) { // correctly unescaped by NIP-01 escaping rules. func (en *T) Unmarshal(b []byte) (r []byte, err error) { r = b - if en.Message, r, err = text.UnmarshalQuoted(r); chk.E(err) { + if en.Message, r, err = text2.UnmarshalQuoted(r); chk.E(err) { return } if r, err = envelopes.SkipToTheEnd(r); chk.E(err) { diff --git a/encoders/envelopes/noticeenvelope/noticeenvelope_test.go b/pkg/encoders/envelopes/noticeenvelope/noticeenvelope_test.go similarity index 92% rename from encoders/envelopes/noticeenvelope/noticeenvelope_test.go rename to pkg/encoders/envelopes/noticeenvelope/noticeenvelope_test.go index 2f89898..d87b674 100644 --- a/encoders/envelopes/noticeenvelope/noticeenvelope_test.go +++ b/pkg/encoders/envelopes/noticeenvelope/noticeenvelope_test.go @@ -2,11 +2,10 @@ package noticeenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/envelopes/messages" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/envelopes/messages" ) func TestMarshalUnmarshal(t *testing.T) { diff --git a/encoders/envelopes/okenvelope/okenvelope.go b/pkg/encoders/envelopes/okenvelope/okenvelope.go similarity index 82% rename from encoders/envelopes/okenvelope/okenvelope.go rename to pkg/encoders/envelopes/okenvelope/okenvelope.go index dbb692a..1e7e7e9 100644 --- a/encoders/envelopes/okenvelope/okenvelope.go +++ b/pkg/encoders/envelopes/okenvelope/okenvelope.go @@ -5,15 +5,14 @@ package okenvelope import ( "io" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/eventid" - "orly.dev/encoders/text" - "orly.dev/interfaces/codec" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/eventid" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) // L is the label associated with this type of codec.Envelope. @@ -75,10 +74,10 @@ func (en *T) Marshal(dst []byte) (b []byte) { o = en.EventID.ByteString(o) o = append(o, '"') o = append(o, ',') - o = text.MarshalBool(o, en.OK) + o = text2.MarshalBool(o, en.OK) o = append(o, ',') o = append(o, '"') - o = text.NostrEscape(o, en.Reason) + o = text2.NostrEscape(o, en.Reason) o = append(o, '"') return }, @@ -92,7 +91,7 @@ func (en *T) Marshal(dst []byte) (b []byte) { func (en *T) Unmarshal(b []byte) (r []byte, err error) { r = b var idHex []byte - if idHex, r, err = text.UnmarshalHex(r); chk.E(err) { + if idHex, r, err = text2.UnmarshalHex(r); chk.E(err) { return } if len(idHex) != sha256.Size { @@ -102,16 +101,16 @@ func (en *T) Unmarshal(b []byte) (r []byte, err error) { ) } en.EventID = eventid.NewWith(idHex) - if r, err = text.Comma(r); chk.E(err) { + if r, err = text2.Comma(r); chk.E(err) { return } - if r, en.OK, err = text.UnmarshalBool(r); chk.E(err) { + if r, en.OK, err = text2.UnmarshalBool(r); chk.E(err) { return } - if r, err = text.Comma(r); chk.E(err) { + if r, err = text2.Comma(r); chk.E(err) { return } - if en.Reason, r, err = text.UnmarshalQuoted(r); chk.E(err) { + if en.Reason, r, err = text2.UnmarshalQuoted(r); chk.E(err) { return } if r, err = envelopes.SkipToTheEnd(r); chk.E(err) { diff --git a/encoders/envelopes/okenvelope/okenvelope_test.go b/pkg/encoders/envelopes/okenvelope/okenvelope_test.go similarity index 90% rename from encoders/envelopes/okenvelope/okenvelope_test.go rename to pkg/encoders/envelopes/okenvelope/okenvelope_test.go index db83ca9..a2c18cd 100644 --- a/encoders/envelopes/okenvelope/okenvelope_test.go +++ b/pkg/encoders/envelopes/okenvelope/okenvelope_test.go @@ -2,12 +2,11 @@ package okenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/envelopes/messages" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/envelopes/messages" - "orly.dev/encoders/eventid" ) func TestMarshalUnmarshal(t *testing.T) { diff --git a/encoders/envelopes/process.go b/pkg/encoders/envelopes/process.go similarity index 100% rename from encoders/envelopes/process.go rename to pkg/encoders/envelopes/process.go diff --git a/encoders/envelopes/reqenvelope/reqenvelope.go b/pkg/encoders/envelopes/reqenvelope/reqenvelope.go similarity index 93% rename from encoders/envelopes/reqenvelope/reqenvelope.go rename to pkg/encoders/envelopes/reqenvelope/reqenvelope.go index 2fcd7cb..d4baeb1 100644 --- a/encoders/envelopes/reqenvelope/reqenvelope.go +++ b/pkg/encoders/envelopes/reqenvelope/reqenvelope.go @@ -4,13 +4,12 @@ package reqenvelope import ( "io" - "orly.dev/utils/chk" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/filters" - "orly.dev/encoders/subscription" - "orly.dev/encoders/text" - "orly.dev/interfaces/codec" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // L is the label associated with this type of codec.Envelope. diff --git a/encoders/envelopes/reqenvelope/reqenvelope_test.go b/pkg/encoders/envelopes/reqenvelope/reqenvelope_test.go similarity index 91% rename from encoders/envelopes/reqenvelope/reqenvelope_test.go rename to pkg/encoders/envelopes/reqenvelope/reqenvelope_test.go index 0884920..76e7fdb 100644 --- a/encoders/envelopes/reqenvelope/reqenvelope_test.go +++ b/pkg/encoders/envelopes/reqenvelope/reqenvelope_test.go @@ -2,12 +2,11 @@ package reqenvelope import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/filters" - "orly.dev/encoders/subscription" ) func TestMarshalUnmarshal(t *testing.T) { diff --git a/encoders/event/binary.go b/pkg/encoders/event/binary.go similarity index 90% rename from encoders/event/binary.go rename to pkg/encoders/event/binary.go index 7025fb0..e322e4f 100644 --- a/encoders/event/binary.go +++ b/pkg/encoders/event/binary.go @@ -2,14 +2,13 @@ package event import ( "io" - "orly.dev/crypto/ec/schnorr" - "orly.dev/utils/chk" - - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" - "orly.dev/encoders/varint" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/encoders/varint" + "orly.dev/pkg/utils/chk" ) // MarshalBinary writes a binary encoding of an event. diff --git a/encoders/event/binary_test.go b/pkg/encoders/event/binary_test.go similarity index 92% rename from encoders/event/binary_test.go rename to pkg/encoders/event/binary_test.go index cc83f3f..c8b30e7 100644 --- a/encoders/event/binary_test.go +++ b/pkg/encoders/event/binary_test.go @@ -3,12 +3,11 @@ package event import ( "bufio" "bytes" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/utils/chk" "testing" "time" - - "orly.dev/encoders/event/examples" ) func TestTMarshalBinary_UnmarshalBinary(t *testing.T) { diff --git a/encoders/event/canonical.go b/pkg/encoders/event/canonical.go similarity index 79% rename from encoders/event/canonical.go rename to pkg/encoders/event/canonical.go index 0f4b769..2e1b840 100644 --- a/encoders/event/canonical.go +++ b/pkg/encoders/event/canonical.go @@ -1,18 +1,17 @@ package event import ( - json2 "orly.dev/encoders/json" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/json" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tags" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" "reflect" - - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/tags" - "orly.dev/encoders/text" - "orly.dev/encoders/timestamp" - "orly.dev/interfaces/codec" ) // ToCanonical converts the event to the canonical encoding used to derive the @@ -28,7 +27,7 @@ func (ev *E) ToCanonical(dst []byte) (b []byte) { b = append(b, ',') b = ev.Tags.Marshal(b) b = append(b, ',') - b = text.AppendQuote(b, ev.Content, text.NostrEscape) + b = text2.AppendQuote(b, ev.Content, text2.NostrEscape) b = append(b, ']') return } @@ -37,15 +36,15 @@ func (ev *E) ToCanonical(dst []byte) (b []byte) { func (ev *E) GetIDBytes() []byte { return Hash(ev.ToCanonical(nil)) } // NewCanonical builds a new canonical encoder. -func NewCanonical() (a *json2.Array) { - a = &json2.Array{ +func NewCanonical() (a *json.Array) { + a = &json.Array{ V: []codec.JSON{ - &json2.Unsigned{}, // 0 - &json2.Hex{}, // pubkey - ×tamp.T{}, // created_at - &kind.T{}, // kind - &tags.T{}, // tags - &json2.String{}, // content + &json.Unsigned{}, // 0 + &json.Hex{}, // pubkey + ×tamp.T{}, // created_at + &kind.T{}, // kind + &tags.T{}, // tags + &json.String{}, // content }, } return @@ -74,7 +73,7 @@ func (ev *E) FromCanonical(b []byte) (rem []byte, err error) { } // unwrap the array x := (*c).V - if v, ok := x[0].(*json2.Unsigned); !ok { + if v, ok := x[0].(*json.Unsigned); !ok { err = errorf.E( "did not decode expected type in first field of canonical event %v %v", reflect.TypeOf(x[0]), x[0], @@ -92,7 +91,7 @@ func (ev *E) FromCanonical(b []byte) (rem []byte, err error) { // create the event, use the Id hash to populate the Id ev.Id = id // unwrap the pubkey - if v, ok := x[1].(*json2.Hex); !ok { + if v, ok := x[1].(*json.Hex); !ok { err = errorf.E( "failed to decode pubkey from canonical form of event %s", b, ) @@ -128,7 +127,7 @@ func (ev *E) FromCanonical(b []byte) (rem []byte, err error) { ev.Tags = v } // populate the content field - if v, ok := x[5].(*json2.String); !ok { + if v, ok := x[5].(*json.String); !ok { err = errorf.E( "did not decode expected type in sixth (content) field of canonical event %v %v", reflect.TypeOf(x[0]), x[0], diff --git a/encoders/event/canonical_test.go b/pkg/encoders/event/canonical_test.go similarity index 100% rename from encoders/event/canonical_test.go rename to pkg/encoders/event/canonical_test.go diff --git a/encoders/event/codectester/divider/main.go b/pkg/encoders/event/codectester/divider/main.go similarity index 96% rename from encoders/event/codectester/divider/main.go rename to pkg/encoders/event/codectester/divider/main.go index 6190987..866cd7f 100644 --- a/encoders/event/codectester/divider/main.go +++ b/pkg/encoders/event/codectester/divider/main.go @@ -7,14 +7,13 @@ import ( "bufio" "bytes" "fmt" - "orly.dev/utils/chk" - "orly.dev/utils/interrupt" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/interrupt" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/units" "os" "strings" - - "orly.dev/encoders/event" - "orly.dev/utils/units" ) func main() { diff --git a/encoders/event/codectester/divider/readme.md b/pkg/encoders/event/codectester/divider/readme.md similarity index 100% rename from encoders/event/codectester/divider/readme.md rename to pkg/encoders/event/codectester/divider/readme.md diff --git a/encoders/event/codectester/doc.go b/pkg/encoders/event/codectester/doc.go similarity index 100% rename from encoders/event/codectester/doc.go rename to pkg/encoders/event/codectester/doc.go diff --git a/encoders/event/event.go b/pkg/encoders/event/event.go similarity index 90% rename from encoders/event/event.go rename to pkg/encoders/event/event.go index ee537a9..28cec71 100644 --- a/encoders/event/event.go +++ b/pkg/encoders/event/event.go @@ -4,21 +4,20 @@ package event import ( - "lukechampine.com/frand" - schnorr2 "orly.dev/crypto/ec/schnorr" - "orly.dev/encoders/unix" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "github.com/minio/sha256-simd" - "orly.dev/encoders/eventid" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/text" - "orly.dev/encoders/timestamp" - "orly.dev/interfaces/signer" + "lukechampine.com/frand" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/encoders/unix" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // E is the primary datatype of nostr. This is the form of the structure that @@ -109,9 +108,9 @@ func (ev *E) ContentString() (s string) { return string(ev.Content) } // J is an event.E encoded in more basic types than used in this library. type J struct { Id string `json:"id"` - Pubkey string `json:"pubkey"` - CreatedAt unix.Time `json:"created_at"` - Kind int32 `json:"kind"` + Pubkey string `json:"pubkey"` + CreatedAt unix.Time `json:"created_at"` + Kind int32 `json:"kind"` Tags [][]string `json:"tags"` Content string `json:"content"` Sig string `json:"sig"` @@ -152,10 +151,10 @@ func (ev *E) KindFromInt32(i int32) { // PubKeyFromString decodes a hex-encoded string into the event.E Pubkey field. func (ev *E) PubKeyFromString(s string) (err error) { - if len(s) != 2*schnorr2.PubKeyBytesLen { + if len(s) != 2*schnorr.PubKeyBytesLen { err = errorf.E( "invalid length public key hex, got %d require %d", - len(s), 2*schnorr2.PubKeyBytesLen, + len(s), 2*schnorr.PubKeyBytesLen, ) } ev.Pubkey, err = hex.Dec(s) @@ -164,10 +163,10 @@ func (ev *E) PubKeyFromString(s string) (err error) { // SigFromString decodes a hex-encoded string into the event.E Sig field. func (ev *E) SigFromString(s string) (err error) { - if len(s) != 2*schnorr2.SignatureSize { + if len(s) != 2*schnorr.SignatureSize { err = errorf.E( "invalid length signature hex, got %d require %d", - len(s), 2*schnorr2.SignatureSize, + len(s), 2*schnorr.SignatureSize, ) } ev.Sig, err = hex.Dec(s) diff --git a/encoders/event/event_test.go b/pkg/encoders/event/event_test.go similarity index 98% rename from encoders/event/event_test.go rename to pkg/encoders/event/event_test.go index 3e81ea2..fc063f6 100644 --- a/encoders/event/event_test.go +++ b/pkg/encoders/event/event_test.go @@ -4,11 +4,10 @@ import ( "bufio" "bytes" _ "embed" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/event/examples" + "orly.dev/pkg/utils/chk" "testing" - - "orly.dev/encoders/event/examples" ) func TestTMarshal_Unmarshal(t *testing.T) { diff --git a/encoders/event/examples/eventcache.go b/pkg/encoders/event/examples/eventcache.go similarity index 100% rename from encoders/event/examples/eventcache.go rename to pkg/encoders/event/examples/eventcache.go diff --git a/encoders/event/json.go b/pkg/encoders/event/json.go similarity index 82% rename from encoders/event/json.go rename to pkg/encoders/event/json.go index 92cebb2..b87fb0a 100644 --- a/encoders/event/json.go +++ b/pkg/encoders/event/json.go @@ -4,14 +4,14 @@ import ( "bytes" "github.com/minio/sha256-simd" "io" - schnorr2 "orly.dev/crypto/ec/schnorr" - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/tags" - "orly.dev/encoders/text" - "orly.dev/encoders/timestamp" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tags" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) var ( @@ -39,27 +39,27 @@ func (ev *E) MarshalWithWhitespace(dst []byte, on bool) (b []byte) { if on { dst = append(dst, '\n', '\t') } - dst = text.JSONKey(dst, jId) + dst = text2.JSONKey(dst, jId) if on { dst = append(dst, ' ') } - dst = text.AppendQuote(dst, ev.Id, hex.EncAppend) + dst = text2.AppendQuote(dst, ev.Id, hex.EncAppend) dst = append(dst, ',') // Pubkey if on { dst = append(dst, '\n', '\t') } - dst = text.JSONKey(dst, jPubkey) + dst = text2.JSONKey(dst, jPubkey) if on { dst = append(dst, ' ') } - dst = text.AppendQuote(dst, ev.Pubkey, hex.EncAppend) + dst = text2.AppendQuote(dst, ev.Pubkey, hex.EncAppend) dst = append(dst, ',') if on { dst = append(dst, '\n', '\t') } // CreatedAt - dst = text.JSONKey(dst, jCreatedAt) + dst = text2.JSONKey(dst, jCreatedAt) if on { dst = append(dst, ' ') } @@ -69,7 +69,7 @@ func (ev *E) MarshalWithWhitespace(dst []byte, on bool) (b []byte) { dst = append(dst, '\n', '\t') } // Kind - dst = text.JSONKey(dst, jKind) + dst = text2.JSONKey(dst, jKind) if on { dst = append(dst, ' ') } @@ -79,7 +79,7 @@ func (ev *E) MarshalWithWhitespace(dst []byte, on bool) (b []byte) { dst = append(dst, '\n', '\t') } // Tags - dst = text.JSONKey(dst, jTags) + dst = text2.JSONKey(dst, jTags) if on { dst = append(dst, ' ') } @@ -93,21 +93,21 @@ func (ev *E) MarshalWithWhitespace(dst []byte, on bool) (b []byte) { dst = append(dst, '\n', '\t') } // Content - dst = text.JSONKey(dst, jContent) + dst = text2.JSONKey(dst, jContent) if on { dst = append(dst, ' ') } - dst = text.AppendQuote(dst, ev.Content, text.NostrEscape) + dst = text2.AppendQuote(dst, ev.Content, text2.NostrEscape) dst = append(dst, ',') if on { dst = append(dst, '\n', '\t') } // jSig - dst = text.JSONKey(dst, jSig) + dst = text2.JSONKey(dst, jSig) if on { dst = append(dst, ' ') } - dst = text.AppendQuote(dst, ev.Sig, hex.EncAppend) + dst = text2.AppendQuote(dst, ev.Sig, hex.EncAppend) if on { dst = append(dst, '\n') } @@ -182,7 +182,7 @@ InVal: goto invalid } var id []byte - if id, r, err = text.UnmarshalHex(r); chk.E(err) { + if id, r, err = text2.UnmarshalHex(r); chk.E(err) { return } if len(id) != sha256.Size { @@ -199,13 +199,13 @@ InVal: goto invalid } var pk []byte - if pk, r, err = text.UnmarshalHex(r); chk.E(err) { + if pk, r, err = text2.UnmarshalHex(r); chk.E(err) { return } - if len(pk) != schnorr2.PubKeyBytesLen { + if len(pk) != schnorr.PubKeyBytesLen { err = errorf.E( "invalid pubkey, require %d got %d", - schnorr2.PubKeyBytesLen, len(pk), + schnorr.PubKeyBytesLen, len(pk), ) return } @@ -234,13 +234,13 @@ InVal: goto invalid } var sig []byte - if sig, r, err = text.UnmarshalHex(r); chk.E(err) { + if sig, r, err = text2.UnmarshalHex(r); chk.E(err) { return } - if len(sig) != schnorr2.SignatureSize { + if len(sig) != schnorr.SignatureSize { err = errorf.E( "invalid sig length, require %d got %d '%s'\n%s", - schnorr2.SignatureSize, len(sig), r, b, + schnorr.SignatureSize, len(sig), r, b, ) return } @@ -251,7 +251,7 @@ InVal: if !bytes.Equal(jContent, key) { goto invalid } - if ev.Content, r, err = text.UnmarshalQuoted(r); chk.T(err) { + if ev.Content, r, err = text2.UnmarshalQuoted(r); chk.T(err) { return } goto BetweenKV diff --git a/encoders/event/json_whitespace_test.go b/pkg/encoders/event/json_whitespace_test.go similarity index 97% rename from encoders/event/json_whitespace_test.go rename to pkg/encoders/event/json_whitespace_test.go index 0af45f1..95ec7a9 100644 --- a/encoders/event/json_whitespace_test.go +++ b/pkg/encoders/event/json_whitespace_test.go @@ -2,12 +2,11 @@ package event import ( "bytes" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" "testing" - - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" ) // compareEvents compares two events and reports any differences diff --git a/encoders/event/signatures.go b/pkg/encoders/event/signatures.go similarity index 88% rename from encoders/event/signatures.go rename to pkg/encoders/event/signatures.go index 9a22219..6751bd9 100644 --- a/encoders/event/signatures.go +++ b/pkg/encoders/event/signatures.go @@ -2,12 +2,11 @@ package event import ( "bytes" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - - "orly.dev/interfaces/signer" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) // Sign the event using the signer.I. Uses github.com/bitcoin-core/secp256k1 if diff --git a/encoders/event/sort.go b/pkg/encoders/event/sort.go similarity index 100% rename from encoders/event/sort.go rename to pkg/encoders/event/sort.go diff --git a/encoders/eventid/eventid.go b/pkg/encoders/eventid/eventid.go similarity index 95% rename from encoders/eventid/eventid.go rename to pkg/encoders/eventid/eventid.go index d2e9023..9b7f1b0 100644 --- a/encoders/eventid/eventid.go +++ b/pkg/encoders/eventid/eventid.go @@ -4,12 +4,11 @@ package eventid import ( "lukechampine.com/frand" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - - "orly.dev/encoders/hex" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) // T is the SHA256 hash in hexadecimal of the canonical form of an event as diff --git a/encoders/eventidserial/eventidserial.go b/pkg/encoders/eventidserial/eventidserial.go similarity index 100% rename from encoders/eventidserial/eventidserial.go rename to pkg/encoders/eventidserial/eventidserial.go diff --git a/encoders/filter/filter.go b/pkg/encoders/filter/filter.go similarity index 92% rename from encoders/filter/filter.go rename to pkg/encoders/filter/filter.go index 503fd86..3f880b0 100644 --- a/encoders/filter/filter.go +++ b/pkg/encoders/filter/filter.go @@ -7,25 +7,24 @@ package filter import ( "bytes" "encoding/binary" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/ec/secp256k1" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/pointers" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/ec/secp256k1" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/pointers" "sort" "lukechampine.com/frand" - - "orly.dev/encoders/event" - "orly.dev/encoders/hex" - "orly.dev/encoders/ints" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/text" - "orly.dev/encoders/timestamp" ) // F is the primary query form for requesting events from a nostr relay. @@ -120,8 +119,8 @@ func (f *F) Marshal(dst []byte) (b []byte) { dst = append(dst, '{') if f.Ids != nil && f.Ids.Len() > 0 { first = true - dst = text.JSONKey(dst, IDs) - dst = text.MarshalHexArray(dst, f.Ids.ToSliceOfBytes()) + dst = text2.JSONKey(dst, IDs) + dst = text2.MarshalHexArray(dst, f.Ids.ToSliceOfBytes()) } if f.Kinds.Len() > 0 { if first { @@ -129,7 +128,7 @@ func (f *F) Marshal(dst []byte) (b []byte) { } else { first = true } - dst = text.JSONKey(dst, Kinds) + dst = text2.JSONKey(dst, Kinds) dst = f.Kinds.Marshal(dst) } if f.Authors.Len() > 0 { @@ -138,8 +137,8 @@ func (f *F) Marshal(dst []byte) (b []byte) { } else { first = true } - dst = text.JSONKey(dst, Authors) - dst = text.MarshalHexArray(dst, f.Authors.ToSliceOfBytes()) + dst = text2.JSONKey(dst, Authors) + dst = text2.MarshalHexArray(dst, f.Authors.ToSliceOfBytes()) } if f.Tags.Len() > 0 { // log.I.S(f.Tags) @@ -202,7 +201,7 @@ func (f *F) Marshal(dst []byte) (b []byte) { } else { first = true } - dst = text.JSONKey(dst, Since) + dst = text2.JSONKey(dst, Since) dst = f.Since.Marshal(dst) } if f.Until != nil && f.Until.U64() > 0 { @@ -211,7 +210,7 @@ func (f *F) Marshal(dst []byte) (b []byte) { } else { first = true } - dst = text.JSONKey(dst, Until) + dst = text2.JSONKey(dst, Until) dst = f.Until.Marshal(dst) } if len(f.Search) > 0 { @@ -220,8 +219,8 @@ func (f *F) Marshal(dst []byte) (b []byte) { } else { first = true } - dst = text.JSONKey(dst, Search) - dst = text.AppendQuote(dst, f.Search, text.NostrEscape) + dst = text2.JSONKey(dst, Search) + dst = text2.AppendQuote(dst, f.Search, text2.NostrEscape) } if pointers.Present(f.Limit) { if first { @@ -229,7 +228,7 @@ func (f *F) Marshal(dst []byte) (b []byte) { } else { first = true } - dst = text.JSONKey(dst, Limit) + dst = text2.JSONKey(dst, Limit) dst = ints.New(*f.Limit).Marshal(dst) } // close parentheses @@ -305,7 +304,7 @@ func (f *F) Unmarshal(b []byte) (r []byte, err error) { case 'e', 'p': // the tags must all be 64 character hexadecimal var ff [][]byte - if ff, r, err = text.UnmarshalHexArray( + if ff, r, err = text2.UnmarshalHexArray( r, sha256.Size, ); chk.E(err) { @@ -317,7 +316,7 @@ func (f *F) Unmarshal(b []byte) (r []byte, err error) { default: // other types of tags can be anything var ff [][]byte - if ff, r, err = text.UnmarshalStringArray(r); chk.E(err) { + if ff, r, err = text2.UnmarshalStringArray(r); chk.E(err) { return } ff = append([][]byte{k}, ff...) @@ -330,7 +329,7 @@ func (f *F) Unmarshal(b []byte) (r []byte, err error) { goto invalid } var ff [][]byte - if ff, r, err = text.UnmarshalHexArray( + if ff, r, err = text2.UnmarshalHexArray( r, sha256.Size, ); chk.E(err) { return @@ -351,7 +350,7 @@ func (f *F) Unmarshal(b []byte) (r []byte, err error) { goto invalid } var ff [][]byte - if ff, r, err = text.UnmarshalHexArray( + if ff, r, err = text2.UnmarshalHexArray( r, schnorr.PubKeyBytesLen, ); chk.E(err) { return @@ -389,7 +388,7 @@ func (f *F) Unmarshal(b []byte) (r []byte, err error) { goto invalid } var txt []byte - if txt, r, err = text.UnmarshalQuoted(r); chk.E(err) { + if txt, r, err = text2.UnmarshalQuoted(r); chk.E(err) { return } f.Search = txt diff --git a/encoders/filter/filter_test.go b/pkg/encoders/filter/filter_test.go similarity index 96% rename from encoders/filter/filter_test.go rename to pkg/encoders/filter/filter_test.go index 0c4957c..16b63d4 100644 --- a/encoders/filter/filter_test.go +++ b/pkg/encoders/filter/filter_test.go @@ -2,7 +2,7 @@ package filter import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/encoders/filter/simple.go b/pkg/encoders/filter/simple.go similarity index 95% rename from encoders/filter/simple.go rename to pkg/encoders/filter/simple.go index 44bd2a8..dc0f0ed 100644 --- a/encoders/filter/simple.go +++ b/pkg/encoders/filter/simple.go @@ -2,21 +2,20 @@ package filter import ( "encoding/binary" - "orly.dev/crypto/ec/schnorr" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/pointers" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/pointers" "sort" - - "orly.dev/encoders/event" - "orly.dev/encoders/hex" - "orly.dev/encoders/ints" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/text" - "orly.dev/encoders/timestamp" ) // S is a simplified filter that only covers the nip-01 REQ filter minus the diff --git a/encoders/filters/filters.go b/pkg/encoders/filters/filters.go similarity index 95% rename from encoders/filters/filters.go rename to pkg/encoders/filters/filters.go index abb76d5..9f15528 100644 --- a/encoders/filters/filters.go +++ b/pkg/encoders/filters/filters.go @@ -2,10 +2,10 @@ package filters import ( - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // T is a wrapper around an array of pointers to filter.F. diff --git a/encoders/filters/filters_test.go b/pkg/encoders/filters/filters_test.go similarity index 96% rename from encoders/filters/filters_test.go rename to pkg/encoders/filters/filters_test.go index 3c39e74..b7eada6 100644 --- a/encoders/filters/filters_test.go +++ b/pkg/encoders/filters/filters_test.go @@ -2,7 +2,7 @@ package filters import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/encoders/hex/aliases.go b/pkg/encoders/hex/aliases.go similarity index 95% rename from encoders/hex/aliases.go rename to pkg/encoders/hex/aliases.go index 7dd8d3f..9add71c 100644 --- a/encoders/hex/aliases.go +++ b/pkg/encoders/hex/aliases.go @@ -4,10 +4,9 @@ package hex import ( "encoding/hex" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "github.com/templexxx/xhex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) var Enc = hex.EncodeToString diff --git a/encoders/ints/base10k.txt b/pkg/encoders/ints/base10k.txt similarity index 100% rename from encoders/ints/base10k.txt rename to pkg/encoders/ints/base10k.txt diff --git a/encoders/ints/gen/pregen.go b/pkg/encoders/ints/gen/pregen.go similarity index 91% rename from encoders/ints/gen/pregen.go rename to pkg/encoders/ints/gen/pregen.go index 3632595..d388ec4 100644 --- a/encoders/ints/gen/pregen.go +++ b/pkg/encoders/ints/gen/pregen.go @@ -4,7 +4,7 @@ package main import ( "fmt" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "os" ) diff --git a/encoders/ints/ints.go b/pkg/encoders/ints/ints.go similarity index 98% rename from encoders/ints/ints.go rename to pkg/encoders/ints/ints.go index 444c377..99c085e 100644 --- a/encoders/ints/ints.go +++ b/pkg/encoders/ints/ints.go @@ -6,10 +6,9 @@ package ints import ( _ "embed" - "io" - "orly.dev/utils/errorf" - "golang.org/x/exp/constraints" + "io" + "orly.dev/pkg/utils/errorf" ) // run this to regenerate (pointlessly) the base 10 array of 4 places per entry diff --git a/encoders/ints/ints_test.go b/pkg/encoders/ints/ints_test.go similarity index 98% rename from encoders/ints/ints_test.go rename to pkg/encoders/ints/ints_test.go index 078217f..2afa651 100644 --- a/encoders/ints/ints_test.go +++ b/pkg/encoders/ints/ints_test.go @@ -2,7 +2,7 @@ package ints import ( "math" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "strconv" "testing" diff --git a/encoders/json/array.go b/pkg/encoders/json/array.go similarity index 96% rename from encoders/json/array.go rename to pkg/encoders/json/array.go index ea65d79..cced227 100644 --- a/encoders/json/array.go +++ b/pkg/encoders/json/array.go @@ -2,9 +2,8 @@ package json import ( "io" - "orly.dev/utils/chk" - - "orly.dev/interfaces/codec" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // An Array is an ordered list of values. Each field is typed, to deal with the diff --git a/encoders/json/base64.go b/pkg/encoders/json/base64.go similarity index 91% rename from encoders/json/base64.go rename to pkg/encoders/json/base64.go index a08c15a..72d9caf 100644 --- a/encoders/json/base64.go +++ b/pkg/encoders/json/base64.go @@ -3,10 +3,9 @@ package json import ( "bytes" "encoding/base64" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - - "orly.dev/encoders/text" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // Base64 is a string representing binary data encoded as base64. diff --git a/encoders/json/bech32.go b/pkg/encoders/json/bech32.go similarity index 89% rename from encoders/json/bech32.go rename to pkg/encoders/json/bech32.go index 19c2ec7..8fd16a1 100644 --- a/encoders/json/bech32.go +++ b/pkg/encoders/json/bech32.go @@ -2,12 +2,11 @@ package json import ( "bytes" - "orly.dev/crypto/ec/bech32" - "orly.dev/encoders/bech32encoding" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - - "orly.dev/encoders/text" + "orly.dev/pkg/crypto/ec/bech32" + "orly.dev/pkg/encoders/bech32encoding" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // Bech32 is a string encoded in bech32 format including a human-readable prefix diff --git a/encoders/json/bool.go b/pkg/encoders/json/bool.go similarity index 100% rename from encoders/json/bool.go rename to pkg/encoders/json/bool.go diff --git a/encoders/json/hex.go b/pkg/encoders/json/hex.go similarity index 87% rename from encoders/json/hex.go rename to pkg/encoders/json/hex.go index ce18a47..15ded3a 100644 --- a/encoders/json/hex.go +++ b/pkg/encoders/json/hex.go @@ -1,10 +1,10 @@ package json import ( - "orly.dev/encoders/hex" - "orly.dev/encoders/text" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // Hex is a string representing binary data encoded as hexadecimal. diff --git a/encoders/json/keyvalue.go b/pkg/encoders/json/keyvalue.go similarity index 95% rename from encoders/json/keyvalue.go rename to pkg/encoders/json/keyvalue.go index 6cf0d29..22fd640 100644 --- a/encoders/json/keyvalue.go +++ b/pkg/encoders/json/keyvalue.go @@ -2,9 +2,8 @@ package json import ( "io" - "orly.dev/utils/chk" - - "orly.dev/interfaces/codec" + "orly.dev/pkg/interfaces/codec" + "orly.dev/pkg/utils/chk" ) // An Object is an (not necessarily) ordered list of KeyValue. diff --git a/encoders/json/signed.go b/pkg/encoders/json/signed.go similarity index 96% rename from encoders/json/signed.go rename to pkg/encoders/json/signed.go index 86f33e6..b587e93 100644 --- a/encoders/json/signed.go +++ b/pkg/encoders/json/signed.go @@ -2,9 +2,8 @@ package json import ( "golang.org/x/exp/constraints" - "orly.dev/utils/chk" - - "orly.dev/encoders/ints" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/utils/chk" ) // Signed integers can be negative and thus a `-` prefix. diff --git a/encoders/json/unsigned.go b/pkg/encoders/json/unsigned.go similarity index 94% rename from encoders/json/unsigned.go rename to pkg/encoders/json/unsigned.go index 032e232..33f500e 100644 --- a/encoders/json/unsigned.go +++ b/pkg/encoders/json/unsigned.go @@ -2,9 +2,8 @@ package json import ( "golang.org/x/exp/constraints" - "orly.dev/utils/chk" - - "orly.dev/encoders/ints" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/utils/chk" ) // Unsigned integers have no possible `-` prefix nor a decimal place. diff --git a/encoders/kind/kind.go b/pkg/encoders/kind/kind.go similarity index 99% rename from encoders/kind/kind.go rename to pkg/encoders/kind/kind.go index e1f14f2..6c683bf 100644 --- a/encoders/kind/kind.go +++ b/pkg/encoders/kind/kind.go @@ -4,12 +4,11 @@ package kind import ( - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/utils/chk" "sync" "golang.org/x/exp/constraints" - - "orly.dev/encoders/ints" ) // T - which will be externally referenced as kind.T is the event type in the diff --git a/encoders/kind/kind_test.go b/pkg/encoders/kind/kind_test.go similarity index 96% rename from encoders/kind/kind_test.go rename to pkg/encoders/kind/kind_test.go index 968ec16..aec51b3 100644 --- a/encoders/kind/kind_test.go +++ b/pkg/encoders/kind/kind_test.go @@ -1,7 +1,7 @@ package kind import ( - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" diff --git a/encoders/kinds/kinds.go b/pkg/encoders/kinds/kinds.go similarity index 95% rename from encoders/kinds/kinds.go rename to pkg/encoders/kinds/kinds.go index 1a7b208..1ab3195 100644 --- a/encoders/kinds/kinds.go +++ b/pkg/encoders/kinds/kinds.go @@ -3,11 +3,11 @@ package kinds import ( - "orly.dev/encoders/ints" - "orly.dev/encoders/kind" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) // T is an array of kind.T, used in filter.T and filter.S for searches. diff --git a/encoders/kinds/kinds_test.go b/pkg/encoders/kinds/kinds_test.go similarity index 91% rename from encoders/kinds/kinds_test.go rename to pkg/encoders/kinds/kinds_test.go index 5d72d06..d172a1a 100644 --- a/encoders/kinds/kinds_test.go +++ b/pkg/encoders/kinds/kinds_test.go @@ -1,12 +1,11 @@ package kinds import ( - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" - - "orly.dev/encoders/kind" ) func TestUnmarshalKindsArray(t *testing.T) { diff --git a/encoders/reason/reason.go b/pkg/encoders/reason/reason.go similarity index 100% rename from encoders/reason/reason.go rename to pkg/encoders/reason/reason.go diff --git a/encoders/subscription/subscriptionid.go b/pkg/encoders/subscription/subscriptionid.go similarity index 94% rename from encoders/subscription/subscriptionid.go rename to pkg/encoders/subscription/subscriptionid.go index a25b976..594ff9e 100644 --- a/encoders/subscription/subscriptionid.go +++ b/pkg/encoders/subscription/subscriptionid.go @@ -5,12 +5,11 @@ package subscription import ( "crypto/rand" - "orly.dev/crypto/ec/bech32" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - - "orly.dev/encoders/text" + "orly.dev/pkg/crypto/ec/bech32" + "orly.dev/pkg/encoders/text" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) type Id struct { diff --git a/encoders/subscription/subscriptionid_test.go b/pkg/encoders/subscription/subscriptionid_test.go similarity index 96% rename from encoders/subscription/subscriptionid_test.go rename to pkg/encoders/subscription/subscriptionid_test.go index 1902c05..8a0d9e1 100644 --- a/encoders/subscription/subscriptionid_test.go +++ b/pkg/encoders/subscription/subscriptionid_test.go @@ -2,7 +2,7 @@ package subscription import ( "bytes" - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" diff --git a/encoders/tag/atag/atag.go b/pkg/encoders/tag/atag/atag.go similarity index 89% rename from encoders/tag/atag/atag.go rename to pkg/encoders/tag/atag/atag.go index 8db791f..ee5117e 100644 --- a/encoders/tag/atag/atag.go +++ b/pkg/encoders/tag/atag/atag.go @@ -4,11 +4,10 @@ package atag import ( "bytes" - "orly.dev/utils/chk" - - "orly.dev/encoders/hex" - "orly.dev/encoders/ints" - "orly.dev/encoders/kind" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/utils/chk" ) // T is a data structure for what is found in an `a` tag: kind:pubkey:arbitrary data diff --git a/encoders/tag/atag/atag_test.go b/pkg/encoders/tag/atag/atag_test.go similarity index 82% rename from encoders/tag/atag/atag_test.go rename to pkg/encoders/tag/atag/atag_test.go index 5600d2f..0d9d657 100644 --- a/encoders/tag/atag/atag_test.go +++ b/pkg/encoders/tag/atag/atag_test.go @@ -3,15 +3,14 @@ package atag import ( "bytes" "math" - "orly.dev/crypto/ec/schnorr" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/ec/schnorr" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "testing" "lukechampine.com/frand" - - "orly.dev/encoders/hex" - "orly.dev/encoders/kind" ) func TestT_Marshal_Unmarshal(t *testing.T) { diff --git a/encoders/tag/tag.go b/pkg/encoders/tag/tag.go similarity index 95% rename from encoders/tag/tag.go rename to pkg/encoders/tag/tag.go index d6d4fbe..32f657a 100644 --- a/encoders/tag/tag.go +++ b/pkg/encoders/tag/tag.go @@ -5,11 +5,10 @@ package tag import ( "bytes" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - "orly.dev/utils/normalize" - - "orly.dev/encoders/text" + text2 "orly.dev/pkg/encoders/text" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/normalize" ) // The tag position meanings, so they are clear when reading. @@ -235,7 +234,7 @@ func (t *T) Marshal(dst []byte) (b []byte) { if i > 0 { dst = append(dst, ',') } - dst = text.AppendQuote(dst, s, text.NostrEscape) + dst = text2.AppendQuote(dst, s, text2.NostrEscape) } dst = append(dst, ']') return dst @@ -249,7 +248,7 @@ func (t *T) MarshalWithWhitespace(dst []byte) (b []byte) { dst = append(dst, ',') dst = append(dst, ' ') } - dst = text.AppendQuote(dst, s, text.NostrEscape) + dst = text2.AppendQuote(dst, s, text2.NostrEscape) } dst = append(dst, ']') return dst @@ -273,7 +272,7 @@ func (t *T) Unmarshal(b []byte) (r []byte, err error) { i++ } else if b[i] == '"' { inQuotes = false - t.field = append(t.field, text.NostrUnescape(b[quoteStart:i])) + t.field = append(t.field, text2.NostrUnescape(b[quoteStart:i])) } } if !openedBracket || inQuotes { diff --git a/encoders/tag/tag_test.go b/pkg/encoders/tag/tag_test.go similarity index 97% rename from encoders/tag/tag_test.go rename to pkg/encoders/tag/tag_test.go index e8fefe7..7381f84 100644 --- a/encoders/tag/tag_test.go +++ b/pkg/encoders/tag/tag_test.go @@ -2,8 +2,8 @@ package tag import ( "bytes" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "testing" "lukechampine.com/frand" diff --git a/encoders/tags/tags.go b/pkg/encoders/tags/tags.go similarity index 98% rename from encoders/tags/tags.go rename to pkg/encoders/tags/tags.go index 247cd35..308be2f 100644 --- a/encoders/tags/tags.go +++ b/pkg/encoders/tags/tags.go @@ -7,13 +7,12 @@ import ( "encoding/json" "errors" "fmt" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" "os" "sort" - - "orly.dev/encoders/tag" - "orly.dev/utils/lol" ) // T is a list of tag.T - which are lists of string elements with ordering and no uniqueness diff --git a/encoders/tags/tags_test.go b/pkg/encoders/tags/tags_test.go similarity index 97% rename from encoders/tags/tags_test.go rename to pkg/encoders/tags/tags_test.go index 56022f7..3052453 100644 --- a/encoders/tags/tags_test.go +++ b/pkg/encoders/tags/tags_test.go @@ -2,14 +2,13 @@ package tags import ( "bytes" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "testing" "lukechampine.com/frand" - - "orly.dev/encoders/hex" - "orly.dev/encoders/tag" ) func TestMarshalUnmarshal(t *testing.T) { diff --git a/encoders/text/doc.go b/pkg/encoders/text/doc.go similarity index 100% rename from encoders/text/doc.go rename to pkg/encoders/text/doc.go diff --git a/encoders/text/escape.go b/pkg/encoders/text/escape.go similarity index 100% rename from encoders/text/escape.go rename to pkg/encoders/text/escape.go diff --git a/encoders/text/escape_test.go b/pkg/encoders/text/escape_test.go similarity index 99% rename from encoders/text/escape_test.go rename to pkg/encoders/text/escape_test.go index dd00544..e729466 100644 --- a/encoders/text/escape_test.go +++ b/pkg/encoders/text/escape_test.go @@ -1,8 +1,8 @@ package text import ( - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" diff --git a/encoders/text/helpers.go b/pkg/encoders/text/helpers.go similarity index 98% rename from encoders/text/helpers.go rename to pkg/encoders/text/helpers.go index 64a4cc6..cbe8f65 100644 --- a/encoders/text/helpers.go +++ b/pkg/encoders/text/helpers.go @@ -2,13 +2,11 @@ package text import ( "bytes" - "io" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "github.com/templexxx/xhex" - - "orly.dev/encoders/hex" + "io" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" ) // JSONKey generates the JSON format for an object key and terminates with the semicolon. diff --git a/encoders/text/helpers_test.go b/pkg/encoders/text/helpers_test.go similarity index 91% rename from encoders/text/helpers_test.go rename to pkg/encoders/text/helpers_test.go index e504513..0721448 100644 --- a/encoders/text/helpers_test.go +++ b/pkg/encoders/text/helpers_test.go @@ -2,13 +2,12 @@ package text import ( "bytes" - "orly.dev/crypto/sha256" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" - - "orly.dev/encoders/hex" ) func TestUnmarshalHexArray(t *testing.T) { diff --git a/encoders/text/hex.go b/pkg/encoders/text/hex.go similarity index 92% rename from encoders/text/hex.go rename to pkg/encoders/text/hex.go index f8cb289..7b69f99 100644 --- a/encoders/text/hex.go +++ b/pkg/encoders/text/hex.go @@ -1,8 +1,8 @@ package text import ( - "orly.dev/encoders/hex" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/utils/chk" ) // AppendHexFromBinary appends to a hex output from binary input. diff --git a/encoders/text/wrap.go b/pkg/encoders/text/wrap.go similarity index 96% rename from encoders/text/wrap.go rename to pkg/encoders/text/wrap.go index ec3d3fd..f09b948 100644 --- a/encoders/text/wrap.go +++ b/pkg/encoders/text/wrap.go @@ -73,8 +73,10 @@ func AppendBracket(dst, src []byte, ac AppendBytesClosure) []byte { // AppendList appends an input source bytes processed by an AppendBytesClosure and separates // elements with the given separator byte. -func AppendList(dst []byte, src [][]byte, separator byte, - ac AppendBytesClosure) []byte { +func AppendList( + dst []byte, src [][]byte, separator byte, + ac AppendBytesClosure, +) []byte { last := len(src) - 1 for i := range src { dst = append(dst, ac(dst, src[i])...) diff --git a/encoders/timestamp/timestamp.go b/pkg/encoders/timestamp/timestamp.go similarity index 97% rename from encoders/timestamp/timestamp.go rename to pkg/encoders/timestamp/timestamp.go index b320ac9..0d466b4 100644 --- a/encoders/timestamp/timestamp.go +++ b/pkg/encoders/timestamp/timestamp.go @@ -4,12 +4,11 @@ package timestamp import ( "encoding/binary" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" "time" "unsafe" - - "orly.dev/encoders/ints" ) // T is a convenience type for UNIX 64 bit timestamps of 1 second diff --git a/encoders/unix/unix.go b/pkg/encoders/unix/unix.go similarity index 92% rename from encoders/unix/unix.go rename to pkg/encoders/unix/unix.go index 6ad1568..fb7804b 100644 --- a/encoders/unix/unix.go +++ b/pkg/encoders/unix/unix.go @@ -1,9 +1,8 @@ package unix import ( + "orly.dev/pkg/encoders/ints" "time" - - "orly.dev/encoders/ints" ) type Time struct{ time.Time } diff --git a/encoders/varint/varint.go b/pkg/encoders/varint/varint.go similarity index 97% rename from encoders/varint/varint.go rename to pkg/encoders/varint/varint.go index f170218..eaf1de8 100644 --- a/encoders/varint/varint.go +++ b/pkg/encoders/varint/varint.go @@ -5,10 +5,9 @@ package varint import ( - "io" - "orly.dev/utils/chk" - "golang.org/x/exp/constraints" + "io" + "orly.dev/pkg/utils/chk" ) func Encode[V constraints.Integer](w io.Writer, v V) { diff --git a/encoders/varint/varint_test.go b/pkg/encoders/varint/varint_test.go similarity index 87% rename from encoders/varint/varint_test.go rename to pkg/encoders/varint/varint_test.go index 218ff7f..b35e021 100644 --- a/encoders/varint/varint_test.go +++ b/pkg/encoders/varint/varint_test.go @@ -3,8 +3,8 @@ package varint import ( "bytes" "math" - "orly.dev/encoders/codecbuf" - "orly.dev/utils/chk" + "orly.dev/pkg/encoders/codecbuf" + "orly.dev/pkg/utils/chk" "testing" "lukechampine.com/frand" diff --git a/interfaces/codec/codec.go b/pkg/interfaces/codec/codec.go similarity index 100% rename from interfaces/codec/codec.go rename to pkg/interfaces/codec/codec.go diff --git a/interfaces/eventId/eventId.go b/pkg/interfaces/eventId/eventId.go similarity index 100% rename from interfaces/eventId/eventId.go rename to pkg/interfaces/eventId/eventId.go diff --git a/interfaces/publisher/publisher.go b/pkg/interfaces/publisher/publisher.go similarity index 84% rename from interfaces/publisher/publisher.go rename to pkg/interfaces/publisher/publisher.go index bff2015..8e3d1f2 100644 --- a/interfaces/publisher/publisher.go +++ b/pkg/interfaces/publisher/publisher.go @@ -1,7 +1,7 @@ package publisher import ( - "orly.dev/encoders/event" + "orly.dev/pkg/encoders/event" ) type Message interface { diff --git a/interfaces/relay/interface.go b/pkg/interfaces/relay/interface.go similarity index 91% rename from interfaces/relay/interface.go rename to pkg/interfaces/relay/interface.go index 8992fe8..e6830d5 100644 --- a/interfaces/relay/interface.go +++ b/pkg/interfaces/relay/interface.go @@ -3,9 +3,9 @@ package relay import ( - "orly.dev/interfaces/store" - "orly.dev/protocol/relayinfo" - "orly.dev/utils/context" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/protocol/relayinfo" + "orly.dev/pkg/utils/context" ) // I is the main interface for implementing a nostr relay. diff --git a/interfaces/server/server.go b/pkg/interfaces/server/server.go similarity index 79% rename from interfaces/server/server.go rename to pkg/interfaces/server/server.go index 9f5af7d..dc13fc3 100644 --- a/interfaces/server/server.go +++ b/pkg/interfaces/server/server.go @@ -2,12 +2,12 @@ package server import ( "net/http" - "orly.dev/app/relay/publish" - "orly.dev/encoders/event" - "orly.dev/encoders/filters" - "orly.dev/interfaces/relay" - "orly.dev/interfaces/store" - "orly.dev/utils/context" + "orly.dev/pkg/app/relay/publish" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/interfaces/relay" + "orly.dev/pkg/interfaces/store" + "orly.dev/pkg/utils/context" ) type I interface { diff --git a/interfaces/signer/signer.go b/pkg/interfaces/signer/signer.go similarity index 100% rename from interfaces/signer/signer.go rename to pkg/interfaces/signer/signer.go diff --git a/interfaces/store/alias.go b/pkg/interfaces/store/alias.go similarity index 64% rename from interfaces/store/alias.go rename to pkg/interfaces/store/alias.go index 9cc8bbf..28da3d2 100644 --- a/interfaces/store/alias.go +++ b/pkg/interfaces/store/alias.go @@ -2,9 +2,8 @@ package store import ( "net/http" - - "orly.dev/encoders/envelopes/okenvelope" - "orly.dev/encoders/subscription" + "orly.dev/pkg/encoders/envelopes/okenvelope" + "orly.dev/pkg/encoders/subscription" ) type SubID = subscription.Id diff --git a/interfaces/store/errors.go b/pkg/interfaces/store/errors.go similarity index 100% rename from interfaces/store/errors.go rename to pkg/interfaces/store/errors.go diff --git a/interfaces/store/store_interface.go b/pkg/interfaces/store/store_interface.go similarity index 92% rename from interfaces/store/store_interface.go rename to pkg/interfaces/store/store_interface.go index fe4a14e..8e519f5 100644 --- a/interfaces/store/store_interface.go +++ b/pkg/interfaces/store/store_interface.go @@ -8,14 +8,13 @@ package store import ( "io" - - "orly.dev/app/config" - "orly.dev/encoders/event" - "orly.dev/encoders/eventid" - "orly.dev/encoders/eventidserial" - "orly.dev/encoders/filter" - "orly.dev/encoders/tag" - "orly.dev/utils/context" + "orly.dev/pkg/app/config" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/eventidserial" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/utils/context" ) // I am a type for a persistence layer for nostr events handled by a relay. diff --git a/interfaces/typer/typer.go b/pkg/interfaces/typer/typer.go similarity index 100% rename from interfaces/typer/typer.go rename to pkg/interfaces/typer/typer.go diff --git a/protocol/auth/doc.go b/pkg/protocol/auth/doc.go similarity index 100% rename from protocol/auth/doc.go rename to pkg/protocol/auth/doc.go diff --git a/protocol/auth/nip42.go b/pkg/protocol/auth/nip42.go similarity index 93% rename from protocol/auth/nip42.go rename to pkg/protocol/auth/nip42.go index e8f439c..c305861 100644 --- a/protocol/auth/nip42.go +++ b/pkg/protocol/auth/nip42.go @@ -4,16 +4,15 @@ import ( "crypto/rand" "encoding/base64" "net/url" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" "strings" "time" - - "orly.dev/encoders/event" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" ) // GenerateChallenge creates a reasonable, 16-byte base64 challenge string diff --git a/protocol/auth/nip42_test.go b/pkg/protocol/auth/nip42_test.go similarity index 91% rename from protocol/auth/nip42_test.go rename to pkg/protocol/auth/nip42_test.go index 45864d8..79ae544 100644 --- a/protocol/auth/nip42_test.go +++ b/pkg/protocol/auth/nip42_test.go @@ -1,8 +1,8 @@ package auth import ( - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/protocol/dns/nip05.go b/pkg/protocol/dns/nip05.go similarity index 96% rename from protocol/dns/nip05.go rename to pkg/protocol/dns/nip05.go index 74757f2..c4e1225 100644 --- a/protocol/dns/nip05.go +++ b/pkg/protocol/dns/nip05.go @@ -6,14 +6,13 @@ import ( "encoding/json" "fmt" "net/http" - "orly.dev/crypto/keys" - "orly.dev/encoders/bech32encoding/pointers" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" + "orly.dev/pkg/crypto/keys" + "orly.dev/pkg/encoders/bech32encoding/pointers" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" "regexp" "strings" - - "orly.dev/utils/context" ) // Nip05Regex is an regular expression that matches up with the same pattern as diff --git a/protocol/dns/nip05_test.go b/pkg/protocol/dns/nip05_test.go similarity index 94% rename from protocol/dns/nip05_test.go rename to pkg/protocol/dns/nip05_test.go index eee6e0c..24f43a7 100644 --- a/protocol/dns/nip05_test.go +++ b/pkg/protocol/dns/nip05_test.go @@ -3,9 +3,9 @@ package dns import ( "bytes" "context" - "orly.dev/crypto/keys" - "orly.dev/encoders/bech32encoding/pointers" - "orly.dev/utils/chk" + "orly.dev/pkg/crypto/keys" + "orly.dev/pkg/encoders/bech32encoding/pointers" + "orly.dev/pkg/utils/chk" "testing" ) diff --git a/protocol/httpauth/98.adoc b/pkg/protocol/httpauth/98.adoc similarity index 100% rename from protocol/httpauth/98.adoc rename to pkg/protocol/httpauth/98.adoc diff --git a/protocol/httpauth/doc.go b/pkg/protocol/httpauth/doc.go similarity index 100% rename from protocol/httpauth/doc.go rename to pkg/protocol/httpauth/doc.go diff --git a/protocol/httpauth/nip98auth.go b/pkg/protocol/httpauth/nip98auth.go similarity index 84% rename from protocol/httpauth/nip98auth.go rename to pkg/protocol/httpauth/nip98auth.go index 139a740..e9f3a46 100644 --- a/protocol/httpauth/nip98auth.go +++ b/pkg/protocol/httpauth/nip98auth.go @@ -4,16 +4,15 @@ import ( "encoding/base64" "net/http" "net/url" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "strings" - - "orly.dev/encoders/event" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" - "orly.dev/interfaces/signer" ) const ( diff --git a/protocol/httpauth/nip98auth_test.go b/pkg/protocol/httpauth/nip98auth_test.go similarity index 100% rename from protocol/httpauth/nip98auth_test.go rename to pkg/protocol/httpauth/nip98auth_test.go diff --git a/protocol/httpauth/validate.go b/pkg/protocol/httpauth/validate.go similarity index 95% rename from protocol/httpauth/validate.go rename to pkg/protocol/httpauth/validate.go index c770bd7..a9ea5e8 100644 --- a/protocol/httpauth/validate.go +++ b/pkg/protocol/httpauth/validate.go @@ -4,16 +4,15 @@ import ( "encoding/base64" "fmt" "net/http" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" "strings" "time" - - "orly.dev/encoders/event" - "orly.dev/encoders/ints" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" ) var ErrMissingKey = fmt.Errorf( diff --git a/protocol/relayinfo/doc.go b/pkg/protocol/relayinfo/doc.go similarity index 100% rename from protocol/relayinfo/doc.go rename to pkg/protocol/relayinfo/doc.go diff --git a/protocol/relayinfo/fetch.go b/pkg/protocol/relayinfo/fetch.go similarity index 88% rename from protocol/relayinfo/fetch.go rename to pkg/protocol/relayinfo/fetch.go index 4257e26..58f361e 100644 --- a/protocol/relayinfo/fetch.go +++ b/pkg/protocol/relayinfo/fetch.go @@ -4,12 +4,11 @@ import ( "encoding/json" "io" "net/http" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/normalize" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/normalize" "time" - - "orly.dev/utils/context" ) // Fetch fetches the NIP-11 Info. diff --git a/protocol/relayinfo/nip11_test.go b/pkg/protocol/relayinfo/nip11_test.go similarity index 100% rename from protocol/relayinfo/nip11_test.go rename to pkg/protocol/relayinfo/nip11_test.go diff --git a/protocol/relayinfo/relayinfo.go b/pkg/protocol/relayinfo/relayinfo.go similarity index 100% rename from protocol/relayinfo/relayinfo.go rename to pkg/protocol/relayinfo/relayinfo.go diff --git a/protocol/relayinfo/types.go b/pkg/protocol/relayinfo/types.go similarity index 98% rename from protocol/relayinfo/types.go rename to pkg/protocol/relayinfo/types.go index b7d923d..6287880 100644 --- a/protocol/relayinfo/types.go +++ b/pkg/protocol/relayinfo/types.go @@ -3,15 +3,14 @@ package relayinfo import ( "encoding/json" "errors" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/number" "os" "sort" "sync" - - "orly.dev/encoders/kinds" - "orly.dev/encoders/timestamp" - "orly.dev/utils/number" ) // NIP is a number and description of a nostr "improvement" possibility. diff --git a/protocol/servemux/serveMux.go b/pkg/protocol/servemux/serveMux.go similarity index 100% rename from protocol/servemux/serveMux.go rename to pkg/protocol/servemux/serveMux.go diff --git a/protocol/socketapi/handleAuth.go b/pkg/protocol/socketapi/handleAuth.go similarity index 81% rename from protocol/socketapi/handleAuth.go rename to pkg/protocol/socketapi/handleAuth.go index 86a84a5..bba651f 100644 --- a/protocol/socketapi/handleAuth.go +++ b/pkg/protocol/socketapi/handleAuth.go @@ -1,13 +1,13 @@ package socketapi import ( - "orly.dev/encoders/envelopes/authenvelope" - "orly.dev/encoders/envelopes/okenvelope" - "orly.dev/encoders/reason" - "orly.dev/interfaces/server" - "orly.dev/protocol/auth" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/envelopes/authenvelope" + "orly.dev/pkg/encoders/envelopes/okenvelope" + "orly.dev/pkg/encoders/reason" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/protocol/auth" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" ) func (a *A) HandleAuth(b []byte, srv server.I) (msg []byte) { diff --git a/protocol/socketapi/handleClose.go b/pkg/protocol/socketapi/handleClose.go similarity index 90% rename from protocol/socketapi/handleClose.go rename to pkg/protocol/socketapi/handleClose.go index dfada33..4c161cf 100644 --- a/protocol/socketapi/handleClose.go +++ b/pkg/protocol/socketapi/handleClose.go @@ -1,10 +1,10 @@ package socketapi import ( - "orly.dev/encoders/envelopes/closeenvelope" - "orly.dev/interfaces/server" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/envelopes/closeenvelope" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" ) // HandleClose processes a CLOSE envelope, intended to cancel a specific diff --git a/protocol/socketapi/handleEvent.go b/pkg/protocol/socketapi/handleEvent.go similarity index 94% rename from protocol/socketapi/handleEvent.go rename to pkg/protocol/socketapi/handleEvent.go index 4eeeb1a..68ba5bf 100644 --- a/protocol/socketapi/handleEvent.go +++ b/pkg/protocol/socketapi/handleEvent.go @@ -2,20 +2,20 @@ package socketapi import ( "bytes" - "orly.dev/crypto/sha256" - "orly.dev/encoders/envelopes/eventenvelope" - "orly.dev/encoders/envelopes/okenvelope" - "orly.dev/encoders/event" - "orly.dev/encoders/eventid" - "orly.dev/encoders/filter" - "orly.dev/encoders/hex" - "orly.dev/encoders/ints" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/interfaces/server" - "orly.dev/utils/chk" - "orly.dev/utils/context" - "orly.dev/utils/log" + "orly.dev/pkg/crypto/sha256" + "orly.dev/pkg/encoders/envelopes/eventenvelope" + "orly.dev/pkg/encoders/envelopes/okenvelope" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/eventid" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/hex" + "orly.dev/pkg/encoders/ints" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" ) // HandleEvent processes an incoming event request, validates its structure, diff --git a/protocol/socketapi/handleMessage.go b/pkg/protocol/socketapi/handleMessage.go similarity index 80% rename from protocol/socketapi/handleMessage.go rename to pkg/protocol/socketapi/handleMessage.go index 8aea5d9..e613067 100644 --- a/protocol/socketapi/handleMessage.go +++ b/pkg/protocol/socketapi/handleMessage.go @@ -2,15 +2,14 @@ package socketapi import ( "fmt" - "orly.dev/utils/chk" - "orly.dev/utils/log" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/envelopes/authenvelope" - "orly.dev/encoders/envelopes/closeenvelope" - "orly.dev/encoders/envelopes/eventenvelope" - "orly.dev/encoders/envelopes/noticeenvelope" - "orly.dev/encoders/envelopes/reqenvelope" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/envelopes/authenvelope" + "orly.dev/pkg/encoders/envelopes/closeenvelope" + "orly.dev/pkg/encoders/envelopes/eventenvelope" + "orly.dev/pkg/encoders/envelopes/noticeenvelope" + "orly.dev/pkg/encoders/envelopes/reqenvelope" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" ) // HandleMessage processes an incoming message, identifies its type, and diff --git a/protocol/socketapi/handleReq.go b/pkg/protocol/socketapi/handleReq.go similarity index 87% rename from protocol/socketapi/handleReq.go rename to pkg/protocol/socketapi/handleReq.go index 94963b2..64cf72f 100644 --- a/protocol/socketapi/handleReq.go +++ b/pkg/protocol/socketapi/handleReq.go @@ -2,20 +2,18 @@ package socketapi import ( "errors" - "orly.dev/encoders/envelopes/closedenvelope" - "orly.dev/interfaces/server" - "orly.dev/utils/chk" - "orly.dev/utils/log" - "orly.dev/utils/normalize" - "orly.dev/utils/pointers" - "github.com/dgraph-io/badger/v4" - - "orly.dev/encoders/envelopes/eoseenvelope" - "orly.dev/encoders/envelopes/eventenvelope" - "orly.dev/encoders/envelopes/reqenvelope" - "orly.dev/encoders/event" - "orly.dev/utils/context" + "orly.dev/pkg/encoders/envelopes/closedenvelope" + "orly.dev/pkg/encoders/envelopes/eoseenvelope" + "orly.dev/pkg/encoders/envelopes/eventenvelope" + "orly.dev/pkg/encoders/envelopes/reqenvelope" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/normalize" + "orly.dev/pkg/utils/pointers" ) // HandleReq processes a raw request, parses its envelope, validates filters, diff --git a/protocol/socketapi/ok.go b/pkg/protocol/socketapi/ok.go similarity index 94% rename from protocol/socketapi/ok.go rename to pkg/protocol/socketapi/ok.go index 881b3f4..1d6b00e 100644 --- a/protocol/socketapi/ok.go +++ b/pkg/protocol/socketapi/ok.go @@ -1,9 +1,9 @@ package socketapi import ( - "orly.dev/encoders/envelopes/okenvelope" - "orly.dev/encoders/reason" - "orly.dev/interfaces/eventId" + "orly.dev/pkg/encoders/envelopes/okenvelope" + "orly.dev/pkg/encoders/reason" + "orly.dev/pkg/interfaces/eventId" ) type OK func(a *A, env eventId.Ider, format string, params ...any) (err error) diff --git a/protocol/socketapi/pinger.go b/pkg/protocol/socketapi/pinger.go similarity index 94% rename from protocol/socketapi/pinger.go rename to pkg/protocol/socketapi/pinger.go index 6fd8d76..004c37e 100644 --- a/protocol/socketapi/pinger.go +++ b/pkg/protocol/socketapi/pinger.go @@ -1,13 +1,12 @@ package socketapi import ( - "orly.dev/interfaces/server" - "orly.dev/utils/log" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" "time" "github.com/fasthttp/websocket" - - "orly.dev/utils/context" ) // Pinger sends periodic WebSocket ping messages to ensure the connection is diff --git a/protocol/socketapi/publisher.go b/pkg/protocol/socketapi/publisher.go similarity index 92% rename from protocol/socketapi/publisher.go rename to pkg/protocol/socketapi/publisher.go index 88e52b8..389d050 100644 --- a/protocol/socketapi/publisher.go +++ b/pkg/protocol/socketapi/publisher.go @@ -1,16 +1,15 @@ package socketapi import ( - "orly.dev/interfaces/publisher" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/envelopes/eventenvelope" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/interfaces/publisher" + "orly.dev/pkg/protocol/ws" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/log" "regexp" "sync" - - "orly.dev/encoders/envelopes/eventenvelope" - "orly.dev/encoders/event" - "orly.dev/encoders/filters" - "orly.dev/protocol/ws" ) const Type = "socketapi" diff --git a/protocol/socketapi/socketapi.go b/pkg/protocol/socketapi/socketapi.go similarity index 92% rename from protocol/socketapi/socketapi.go rename to pkg/protocol/socketapi/socketapi.go index 931a650..632a320 100644 --- a/protocol/socketapi/socketapi.go +++ b/pkg/protocol/socketapi/socketapi.go @@ -2,19 +2,18 @@ package socketapi import ( "net/http" - "orly.dev/app/relay/helpers" - "orly.dev/encoders/envelopes/authenvelope" - "orly.dev/interfaces/server" - "orly.dev/utils/chk" - "orly.dev/utils/log" + "orly.dev/pkg/app/relay/helpers" + "orly.dev/pkg/encoders/envelopes/authenvelope" + "orly.dev/pkg/interfaces/server" + "orly.dev/pkg/protocol/ws" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/units" "strings" "time" "github.com/fasthttp/websocket" - - "orly.dev/protocol/ws" - "orly.dev/utils/context" - "orly.dev/utils/units" ) const ( diff --git a/protocol/socketapi/upgrader.go b/pkg/protocol/socketapi/upgrader.go similarity index 100% rename from protocol/socketapi/upgrader.go rename to pkg/protocol/socketapi/upgrader.go diff --git a/protocol/ws/client.go b/pkg/protocol/ws/client.go similarity index 95% rename from protocol/ws/client.go rename to pkg/protocol/ws/client.go index f83961d..b58177a 100644 --- a/protocol/ws/client.go +++ b/pkg/protocol/ws/client.go @@ -4,33 +4,32 @@ import ( "bytes" "crypto/tls" "net/http" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - "orly.dev/utils/normalize" + "orly.dev/pkg/encoders/envelopes" + "orly.dev/pkg/encoders/envelopes/authenvelope" + "orly.dev/pkg/encoders/envelopes/closedenvelope" + "orly.dev/pkg/encoders/envelopes/countenvelope" + "orly.dev/pkg/encoders/envelopes/eoseenvelope" + "orly.dev/pkg/encoders/envelopes/eventenvelope" + "orly.dev/pkg/encoders/envelopes/noticeenvelope" + "orly.dev/pkg/encoders/envelopes/okenvelope" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/protocol/auth" + "orly.dev/pkg/utils/atomic" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/normalize" "sync" "time" "github.com/gobwas/ws" "github.com/gobwas/ws/wsutil" "github.com/puzpuzpuz/xsync/v3" - - "orly.dev/encoders/envelopes" - "orly.dev/encoders/envelopes/authenvelope" - "orly.dev/encoders/envelopes/closedenvelope" - "orly.dev/encoders/envelopes/countenvelope" - "orly.dev/encoders/envelopes/eoseenvelope" - "orly.dev/encoders/envelopes/eventenvelope" - "orly.dev/encoders/envelopes/noticeenvelope" - "orly.dev/encoders/envelopes/okenvelope" - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/filters" - "orly.dev/encoders/kind" - "orly.dev/interfaces/signer" - "orly.dev/protocol/auth" - "orly.dev/utils/atomic" - "orly.dev/utils/context" ) var subscriptionIDCounter atomic.Int32 diff --git a/protocol/ws/client_test.go b/pkg/protocol/ws/client_test.go similarity index 95% rename from protocol/ws/client_test.go rename to pkg/protocol/ws/client_test.go index 3914c9d..32c9fe2 100644 --- a/protocol/ws/client_test.go +++ b/pkg/protocol/ws/client_test.go @@ -9,22 +9,21 @@ import ( "io" "net/http" "net/http/httptest" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" - "orly.dev/utils/normalize" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/envelopes/eventenvelope" + "orly.dev/pkg/encoders/envelopes/okenvelope" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/normalize" "sync" "testing" "time" "golang.org/x/net/websocket" - - "orly.dev/encoders/envelopes/eventenvelope" - "orly.dev/encoders/envelopes/okenvelope" - "orly.dev/encoders/event" - "orly.dev/encoders/kind" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/encoders/timestamp" ) func TestPublish(t *testing.T) { diff --git a/protocol/ws/connection.go b/pkg/protocol/ws/connection.go similarity index 97% rename from protocol/ws/connection.go rename to pkg/protocol/ws/connection.go index 202ede8..a5a8bf6 100644 --- a/protocol/ws/connection.go +++ b/pkg/protocol/ws/connection.go @@ -5,19 +5,17 @@ import ( "compress/flate" "crypto/tls" "errors" - "io" - "net" - "net/http" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - "github.com/gobwas/httphead" "github.com/gobwas/ws" "github.com/gobwas/ws/wsflate" "github.com/gobwas/ws/wsutil" - - "orly.dev/utils/context" + "io" + "net" + "net/http" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" ) // Connection is an outbound client -> relay connection. diff --git a/protocol/ws/doc.go b/pkg/protocol/ws/doc.go similarity index 100% rename from protocol/ws/doc.go rename to pkg/protocol/ws/doc.go diff --git a/protocol/ws/listener.go b/pkg/protocol/ws/listener.go similarity index 92% rename from protocol/ws/listener.go rename to pkg/protocol/ws/listener.go index 24e342a..8ada25e 100644 --- a/protocol/ws/listener.go +++ b/pkg/protocol/ws/listener.go @@ -3,14 +3,13 @@ package ws import ( "net/http" - "orly.dev/protocol/auth" + "orly.dev/pkg/app/relay/helpers" + "orly.dev/pkg/protocol/auth" + atomic2 "orly.dev/pkg/utils/atomic" "strings" "sync" "github.com/fasthttp/websocket" - - "orly.dev/app/relay/helpers" - "orly.dev/utils/atomic" ) // Listener is a websocket implementation for a relay listener. @@ -18,11 +17,11 @@ type Listener struct { mutex sync.Mutex Conn *websocket.Conn Request *http.Request - remote atomic.String - authedPubkey atomic.Bytes - authRequested atomic.Bool - isAuthed atomic.Bool - challenge atomic.Bytes + remote atomic2.String + authedPubkey atomic2.Bytes + authRequested atomic2.Bool + isAuthed atomic2.Bool + challenge atomic2.Bytes } // NewListener creates a new Listener for listening for inbound connections for diff --git a/protocol/ws/pool.go b/pkg/protocol/ws/pool.go similarity index 97% rename from protocol/ws/pool.go rename to pkg/protocol/ws/pool.go index b4d665a..bd732d3 100644 --- a/protocol/ws/pool.go +++ b/pkg/protocol/ws/pool.go @@ -2,10 +2,16 @@ package ws import ( "fmt" - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" - "orly.dev/utils/normalize" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/interfaces/signer" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/normalize" "slices" "strings" "sync" @@ -13,13 +19,6 @@ import ( "unsafe" "github.com/puzpuzpuz/xsync/v3" - - "orly.dev/encoders/event" - "orly.dev/encoders/filter" - "orly.dev/encoders/filters" - "orly.dev/encoders/timestamp" - "orly.dev/interfaces/signer" - "orly.dev/utils/context" ) var ( diff --git a/protocol/ws/subscription.go b/pkg/protocol/ws/subscription.go similarity index 92% rename from protocol/ws/subscription.go rename to pkg/protocol/ws/subscription.go index 6188bb7..b63ad95 100644 --- a/protocol/ws/subscription.go +++ b/pkg/protocol/ws/subscription.go @@ -1,20 +1,19 @@ package ws import ( - "orly.dev/utils/chk" - "orly.dev/utils/errorf" - "orly.dev/utils/log" + "orly.dev/pkg/encoders/envelopes/closeenvelope" + "orly.dev/pkg/encoders/envelopes/countenvelope" + "orly.dev/pkg/encoders/envelopes/reqenvelope" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/subscription" + "orly.dev/pkg/utils/chk" + "orly.dev/pkg/utils/context" + "orly.dev/pkg/utils/errorf" + "orly.dev/pkg/utils/log" "strconv" "sync" "sync/atomic" - - "orly.dev/encoders/envelopes/closeenvelope" - "orly.dev/encoders/envelopes/countenvelope" - "orly.dev/encoders/envelopes/reqenvelope" - "orly.dev/encoders/event" - "orly.dev/encoders/filters" - "orly.dev/encoders/subscription" - "orly.dev/utils/context" ) // Subscription is a client interface for a subscription (what REQ turns into diff --git a/protocol/ws/subscription_test.go b/pkg/protocol/ws/subscription_test.go similarity index 92% rename from protocol/ws/subscription_test.go rename to pkg/protocol/ws/subscription_test.go index cf7e591..21cee23 100644 --- a/protocol/ws/subscription_test.go +++ b/pkg/protocol/ws/subscription_test.go @@ -2,16 +2,15 @@ package ws import ( "fmt" + "orly.dev/pkg/encoders/filter" + "orly.dev/pkg/encoders/filters" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/kinds" + "orly.dev/pkg/encoders/tag" + "orly.dev/pkg/encoders/tags" + "orly.dev/pkg/utils/context" "sync/atomic" "testing" - - "orly.dev/encoders/filter" - "orly.dev/encoders/filters" - "orly.dev/encoders/kind" - "orly.dev/encoders/kinds" - "orly.dev/encoders/tag" - "orly.dev/encoders/tags" - "orly.dev/utils/context" ) const RELAY = "wss://nos.lol" diff --git a/utils/apputil/apputil.go b/pkg/utils/apputil/apputil.go similarity index 98% rename from utils/apputil/apputil.go rename to pkg/utils/apputil/apputil.go index e5b398e..f43a79d 100644 --- a/utils/apputil/apputil.go +++ b/pkg/utils/apputil/apputil.go @@ -2,7 +2,7 @@ package apputil import ( - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "os" "path/filepath" ) diff --git a/utils/atomic/.codecov.yml b/pkg/utils/atomic/.codecov.yml similarity index 100% rename from utils/atomic/.codecov.yml rename to pkg/utils/atomic/.codecov.yml diff --git a/utils/atomic/CHANGELOG.md b/pkg/utils/atomic/CHANGELOG.md similarity index 100% rename from utils/atomic/CHANGELOG.md rename to pkg/utils/atomic/CHANGELOG.md diff --git a/utils/atomic/LICENSE b/pkg/utils/atomic/LICENSE similarity index 100% rename from utils/atomic/LICENSE rename to pkg/utils/atomic/LICENSE diff --git a/utils/atomic/Makefile b/pkg/utils/atomic/Makefile similarity index 100% rename from utils/atomic/Makefile rename to pkg/utils/atomic/Makefile diff --git a/utils/atomic/README.md b/pkg/utils/atomic/README.md similarity index 100% rename from utils/atomic/README.md rename to pkg/utils/atomic/README.md diff --git a/utils/atomic/assert_test.go b/pkg/utils/atomic/assert_test.go similarity index 100% rename from utils/atomic/assert_test.go rename to pkg/utils/atomic/assert_test.go diff --git a/utils/atomic/bool.go b/pkg/utils/atomic/bool.go similarity index 100% rename from utils/atomic/bool.go rename to pkg/utils/atomic/bool.go diff --git a/utils/atomic/bool_ext.go b/pkg/utils/atomic/bool_ext.go similarity index 100% rename from utils/atomic/bool_ext.go rename to pkg/utils/atomic/bool_ext.go diff --git a/utils/atomic/bool_test.go b/pkg/utils/atomic/bool_test.go similarity index 100% rename from utils/atomic/bool_test.go rename to pkg/utils/atomic/bool_test.go diff --git a/utils/atomic/bytes.go b/pkg/utils/atomic/bytes.go similarity index 100% rename from utils/atomic/bytes.go rename to pkg/utils/atomic/bytes.go diff --git a/utils/atomic/bytes_ext.go b/pkg/utils/atomic/bytes_ext.go similarity index 100% rename from utils/atomic/bytes_ext.go rename to pkg/utils/atomic/bytes_ext.go diff --git a/utils/atomic/bytes_test.go b/pkg/utils/atomic/bytes_test.go similarity index 100% rename from utils/atomic/bytes_test.go rename to pkg/utils/atomic/bytes_test.go diff --git a/utils/atomic/doc.go b/pkg/utils/atomic/doc.go similarity index 100% rename from utils/atomic/doc.go rename to pkg/utils/atomic/doc.go diff --git a/utils/atomic/duration.go b/pkg/utils/atomic/duration.go similarity index 100% rename from utils/atomic/duration.go rename to pkg/utils/atomic/duration.go diff --git a/utils/atomic/duration_ext.go b/pkg/utils/atomic/duration_ext.go similarity index 100% rename from utils/atomic/duration_ext.go rename to pkg/utils/atomic/duration_ext.go diff --git a/utils/atomic/error.go b/pkg/utils/atomic/error.go similarity index 100% rename from utils/atomic/error.go rename to pkg/utils/atomic/error.go diff --git a/utils/atomic/error_ext.go b/pkg/utils/atomic/error_ext.go similarity index 100% rename from utils/atomic/error_ext.go rename to pkg/utils/atomic/error_ext.go diff --git a/utils/atomic/error_test.go b/pkg/utils/atomic/error_test.go similarity index 100% rename from utils/atomic/error_test.go rename to pkg/utils/atomic/error_test.go diff --git a/utils/atomic/example_test.go b/pkg/utils/atomic/example_test.go similarity index 98% rename from utils/atomic/example_test.go rename to pkg/utils/atomic/example_test.go index 2563e54..46e51b6 100644 --- a/utils/atomic/example_test.go +++ b/pkg/utils/atomic/example_test.go @@ -22,8 +22,7 @@ package atomic_test import ( "fmt" - - "orly.dev/utils/atomic" + "orly.dev/pkg/utils/atomic" ) func Example() { diff --git a/utils/atomic/float32.go b/pkg/utils/atomic/float32.go similarity index 100% rename from utils/atomic/float32.go rename to pkg/utils/atomic/float32.go diff --git a/utils/atomic/float32_ext.go b/pkg/utils/atomic/float32_ext.go similarity index 100% rename from utils/atomic/float32_ext.go rename to pkg/utils/atomic/float32_ext.go diff --git a/utils/atomic/float32_test.go b/pkg/utils/atomic/float32_test.go similarity index 100% rename from utils/atomic/float32_test.go rename to pkg/utils/atomic/float32_test.go diff --git a/utils/atomic/float64.go b/pkg/utils/atomic/float64.go similarity index 100% rename from utils/atomic/float64.go rename to pkg/utils/atomic/float64.go diff --git a/utils/atomic/float64_ext.go b/pkg/utils/atomic/float64_ext.go similarity index 100% rename from utils/atomic/float64_ext.go rename to pkg/utils/atomic/float64_ext.go diff --git a/utils/atomic/float64_test.go b/pkg/utils/atomic/float64_test.go similarity index 100% rename from utils/atomic/float64_test.go rename to pkg/utils/atomic/float64_test.go diff --git a/utils/atomic/gen.go b/pkg/utils/atomic/gen.go similarity index 100% rename from utils/atomic/gen.go rename to pkg/utils/atomic/gen.go diff --git a/utils/atomic/int32.go b/pkg/utils/atomic/int32.go similarity index 100% rename from utils/atomic/int32.go rename to pkg/utils/atomic/int32.go diff --git a/utils/atomic/int32_test.go b/pkg/utils/atomic/int32_test.go similarity index 100% rename from utils/atomic/int32_test.go rename to pkg/utils/atomic/int32_test.go diff --git a/utils/atomic/int64.go b/pkg/utils/atomic/int64.go similarity index 100% rename from utils/atomic/int64.go rename to pkg/utils/atomic/int64.go diff --git a/utils/atomic/int64_test.go b/pkg/utils/atomic/int64_test.go similarity index 100% rename from utils/atomic/int64_test.go rename to pkg/utils/atomic/int64_test.go diff --git a/utils/atomic/internal/gen-atomicint/main.go b/pkg/utils/atomic/internal/gen-atomicint/main.go similarity index 100% rename from utils/atomic/internal/gen-atomicint/main.go rename to pkg/utils/atomic/internal/gen-atomicint/main.go diff --git a/utils/atomic/internal/gen-atomicint/wrapper.tmpl b/pkg/utils/atomic/internal/gen-atomicint/wrapper.tmpl similarity index 100% rename from utils/atomic/internal/gen-atomicint/wrapper.tmpl rename to pkg/utils/atomic/internal/gen-atomicint/wrapper.tmpl diff --git a/utils/atomic/internal/gen-atomicwrapper/main.go b/pkg/utils/atomic/internal/gen-atomicwrapper/main.go similarity index 100% rename from utils/atomic/internal/gen-atomicwrapper/main.go rename to pkg/utils/atomic/internal/gen-atomicwrapper/main.go diff --git a/utils/atomic/internal/gen-atomicwrapper/wrapper.tmpl b/pkg/utils/atomic/internal/gen-atomicwrapper/wrapper.tmpl similarity index 100% rename from utils/atomic/internal/gen-atomicwrapper/wrapper.tmpl rename to pkg/utils/atomic/internal/gen-atomicwrapper/wrapper.tmpl diff --git a/utils/atomic/nocmp.go b/pkg/utils/atomic/nocmp.go similarity index 100% rename from utils/atomic/nocmp.go rename to pkg/utils/atomic/nocmp.go diff --git a/utils/atomic/nocmp_test.go b/pkg/utils/atomic/nocmp_test.go similarity index 100% rename from utils/atomic/nocmp_test.go rename to pkg/utils/atomic/nocmp_test.go diff --git a/utils/atomic/pointer_test.go b/pkg/utils/atomic/pointer_test.go similarity index 100% rename from utils/atomic/pointer_test.go rename to pkg/utils/atomic/pointer_test.go diff --git a/utils/atomic/stress_test.go b/pkg/utils/atomic/stress_test.go similarity index 100% rename from utils/atomic/stress_test.go rename to pkg/utils/atomic/stress_test.go diff --git a/utils/atomic/string.go b/pkg/utils/atomic/string.go similarity index 100% rename from utils/atomic/string.go rename to pkg/utils/atomic/string.go diff --git a/utils/atomic/string_ext.go b/pkg/utils/atomic/string_ext.go similarity index 100% rename from utils/atomic/string_ext.go rename to pkg/utils/atomic/string_ext.go diff --git a/utils/atomic/string_test.go b/pkg/utils/atomic/string_test.go similarity index 100% rename from utils/atomic/string_test.go rename to pkg/utils/atomic/string_test.go diff --git a/utils/atomic/time.go b/pkg/utils/atomic/time.go similarity index 100% rename from utils/atomic/time.go rename to pkg/utils/atomic/time.go diff --git a/utils/atomic/time_ext.go b/pkg/utils/atomic/time_ext.go similarity index 100% rename from utils/atomic/time_ext.go rename to pkg/utils/atomic/time_ext.go diff --git a/utils/atomic/time_test.go b/pkg/utils/atomic/time_test.go similarity index 100% rename from utils/atomic/time_test.go rename to pkg/utils/atomic/time_test.go diff --git a/utils/atomic/tools/tools.go b/pkg/utils/atomic/tools/tools.go similarity index 100% rename from utils/atomic/tools/tools.go rename to pkg/utils/atomic/tools/tools.go diff --git a/utils/atomic/uint32.go b/pkg/utils/atomic/uint32.go similarity index 100% rename from utils/atomic/uint32.go rename to pkg/utils/atomic/uint32.go diff --git a/utils/atomic/uint32_test.go b/pkg/utils/atomic/uint32_test.go similarity index 100% rename from utils/atomic/uint32_test.go rename to pkg/utils/atomic/uint32_test.go diff --git a/utils/atomic/uint64.go b/pkg/utils/atomic/uint64.go similarity index 100% rename from utils/atomic/uint64.go rename to pkg/utils/atomic/uint64.go diff --git a/utils/atomic/uint64_test.go b/pkg/utils/atomic/uint64_test.go similarity index 100% rename from utils/atomic/uint64_test.go rename to pkg/utils/atomic/uint64_test.go diff --git a/utils/atomic/uintptr.go b/pkg/utils/atomic/uintptr.go similarity index 100% rename from utils/atomic/uintptr.go rename to pkg/utils/atomic/uintptr.go diff --git a/utils/atomic/uintptr_test.go b/pkg/utils/atomic/uintptr_test.go similarity index 100% rename from utils/atomic/uintptr_test.go rename to pkg/utils/atomic/uintptr_test.go diff --git a/utils/atomic/unsafe_pointer.go b/pkg/utils/atomic/unsafe_pointer.go similarity index 100% rename from utils/atomic/unsafe_pointer.go rename to pkg/utils/atomic/unsafe_pointer.go diff --git a/utils/atomic/unsafe_pointer_test.go b/pkg/utils/atomic/unsafe_pointer_test.go similarity index 100% rename from utils/atomic/unsafe_pointer_test.go rename to pkg/utils/atomic/unsafe_pointer_test.go diff --git a/utils/atomic/value.go b/pkg/utils/atomic/value.go similarity index 100% rename from utils/atomic/value.go rename to pkg/utils/atomic/value.go diff --git a/utils/atomic/value_test.go b/pkg/utils/atomic/value_test.go similarity index 100% rename from utils/atomic/value_test.go rename to pkg/utils/atomic/value_test.go diff --git a/utils/chk/chk.go b/pkg/utils/chk/chk.go similarity index 91% rename from utils/chk/chk.go rename to pkg/utils/chk/chk.go index c1fc837..e0311c5 100644 --- a/utils/chk/chk.go +++ b/pkg/utils/chk/chk.go @@ -2,7 +2,7 @@ package chk import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var F, E, W, I, D, T lol.Chk diff --git a/utils/context/context.go b/pkg/utils/context/context.go similarity index 100% rename from utils/context/context.go rename to pkg/utils/context/context.go diff --git a/utils/env/config.go b/pkg/utils/env/config.go similarity index 97% rename from utils/env/config.go rename to pkg/utils/env/config.go index b2f3bd2..baf6a13 100644 --- a/utils/env/config.go +++ b/pkg/utils/env/config.go @@ -3,7 +3,7 @@ package env import ( - "orly.dev/utils/chk" + "orly.dev/pkg/utils/chk" "os" "strings" ) diff --git a/utils/errorf/errorf.go b/pkg/utils/errorf/errorf.go similarity index 91% rename from utils/errorf/errorf.go rename to pkg/utils/errorf/errorf.go index 184eb45..529c795 100644 --- a/utils/errorf/errorf.go +++ b/pkg/utils/errorf/errorf.go @@ -2,7 +2,7 @@ package errorf import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var F, E, W, I, D, T lol.Err diff --git a/utils/interrupt/README.md b/pkg/utils/interrupt/README.md similarity index 100% rename from utils/interrupt/README.md rename to pkg/utils/interrupt/README.md diff --git a/utils/interrupt/main.go b/pkg/utils/interrupt/main.go similarity index 97% rename from utils/interrupt/main.go rename to pkg/utils/interrupt/main.go index c7ab110..fe6e37d 100644 --- a/utils/interrupt/main.go +++ b/pkg/utils/interrupt/main.go @@ -5,13 +5,12 @@ package interrupt import ( "fmt" - "orly.dev/utils/log" + "orly.dev/pkg/utils/atomic" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/qu" "os" "os/signal" "runtime" - - "orly.dev/utils/atomic" - "orly.dev/utils/qu" ) // HandlerWithSource is an interrupt handling closure and the source location @@ -24,7 +23,7 @@ type HandlerWithSource struct { var ( // RestartRequested is set true after restart is requested. RestartRequested bool // = true - requested atomic.Bool + requested atomic.Bool // ch is used to receive SIGINT (Ctrl+C) signals. ch chan os.Signal diff --git a/utils/interrupt/restart.go b/pkg/utils/interrupt/restart.go similarity index 93% rename from utils/interrupt/restart.go rename to pkg/utils/interrupt/restart.go index 186fd5f..695f65a 100644 --- a/utils/interrupt/restart.go +++ b/pkg/utils/interrupt/restart.go @@ -3,7 +3,7 @@ package interrupt import ( - "orly.dev/utils/log" + "orly.dev/pkg/utils/log" "os" "syscall" diff --git a/utils/interrupt/restart_darwin.go b/pkg/utils/interrupt/restart_darwin.go similarity index 100% rename from utils/interrupt/restart_darwin.go rename to pkg/utils/interrupt/restart_darwin.go diff --git a/utils/interrupt/restart_windows.go b/pkg/utils/interrupt/restart_windows.go similarity index 100% rename from utils/interrupt/restart_windows.go rename to pkg/utils/interrupt/restart_windows.go diff --git a/utils/interrupt/sigterm.go b/pkg/utils/interrupt/sigterm.go similarity index 100% rename from utils/interrupt/sigterm.go rename to pkg/utils/interrupt/sigterm.go diff --git a/utils/log/log.go b/pkg/utils/log/log.go similarity index 91% rename from utils/log/log.go rename to pkg/utils/log/log.go index f66fddb..468ba6a 100644 --- a/utils/log/log.go +++ b/pkg/utils/log/log.go @@ -2,7 +2,7 @@ package log import ( - "orly.dev/utils/lol" + "orly.dev/pkg/utils/lol" ) var F, E, W, I, D, T lol.LevelPrinter diff --git a/utils/lol/README.md b/pkg/utils/lol/README.md similarity index 100% rename from utils/lol/README.md rename to pkg/utils/lol/README.md diff --git a/utils/lol/log.go b/pkg/utils/lol/log.go similarity index 100% rename from utils/lol/log.go rename to pkg/utils/lol/log.go diff --git a/utils/lol/log_test.go b/pkg/utils/lol/log_test.go similarity index 100% rename from utils/lol/log_test.go rename to pkg/utils/lol/log_test.go diff --git a/utils/normalize/normalize_test.go b/pkg/utils/normalize/normalize_test.go similarity index 100% rename from utils/normalize/normalize_test.go rename to pkg/utils/normalize/normalize_test.go diff --git a/utils/number/list.go b/pkg/utils/number/list.go similarity index 100% rename from utils/number/list.go rename to pkg/utils/number/list.go diff --git a/utils/pointers/pointers.go b/pkg/utils/pointers/pointers.go similarity index 94% rename from utils/pointers/pointers.go rename to pkg/utils/pointers/pointers.go index af84f3f..fe2dd66 100644 --- a/utils/pointers/pointers.go +++ b/pkg/utils/pointers/pointers.go @@ -1,7 +1,7 @@ package pointers import ( - "orly.dev/encoders/unix" + "orly.dev/pkg/encoders/unix" "time" ) diff --git a/utils/qu/README.adoc b/pkg/utils/qu/README.adoc similarity index 100% rename from utils/qu/README.adoc rename to pkg/utils/qu/README.adoc diff --git a/utils/qu/qu.go b/pkg/utils/qu/qu.go similarity index 98% rename from utils/qu/qu.go rename to pkg/utils/qu/qu.go index a56fbe0..14ca1aa 100644 --- a/utils/qu/qu.go +++ b/pkg/utils/qu/qu.go @@ -5,13 +5,12 @@ package qu import ( "fmt" - "orly.dev/utils/log" + "orly.dev/pkg/utils/atomic" + "orly.dev/pkg/utils/log" + "orly.dev/pkg/utils/lol" "strings" "sync" "time" - - "orly.dev/utils/atomic" - "orly.dev/utils/lol" ) // C is your basic empty struct signal channel diff --git a/utils/units/units.go b/pkg/utils/units/units.go similarity index 100% rename from utils/units/units.go rename to pkg/utils/units/units.go diff --git a/version/version.go b/pkg/version/version.go similarity index 100% rename from version/version.go rename to pkg/version/version.go diff --git a/readme.adoc b/readme.adoc index 3acc3c7..e3ec8e9 100644 --- a/readme.adoc +++ b/readme.adoc @@ -1,4 +1,4 @@ -= image:./orly.png[orly.dev] += image:./docs/orly.png[orly.dev] :toc: :note-caption: note 👉 diff --git a/realy.service b/scripts/realy.service similarity index 100% rename from realy.service rename to scripts/realy.service diff --git a/tests/generate.go b/tests/generate.go index 6505c8a..69afffc 100644 --- a/tests/generate.go +++ b/tests/generate.go @@ -4,14 +4,12 @@ package tests import ( "encoding/base64" - "orly.dev/crypto/p256k" - "orly.dev/utils/chk" - "lukechampine.com/frand" - - "orly.dev/encoders/event" - "orly.dev/encoders/kind" - "orly.dev/encoders/timestamp" + "orly.dev/pkg/crypto/p256k" + "orly.dev/pkg/encoders/event" + "orly.dev/pkg/encoders/kind" + "orly.dev/pkg/encoders/timestamp" + "orly.dev/pkg/utils/chk" ) // GenerateEvent creates events full of random kinds and content data. diff --git a/utils/atomic/duration_test.go b/utils/atomic/duration_test.go deleted file mode 100644 index f5779fe..0000000 --- a/utils/atomic/duration_test.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright (c) 2020 Uber Technologies, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -package atomic - -import ( - "encoding/json" - "testing" - "time" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestDuration(t *testing.T) { - atom := NewDuration(5 * time.Minute) - - require.Equal(t, 5*time.Minute, atom.Load(), "Load didn't work.") - require.Equal(t, 6*time.Minute, atom.Add(time.Minute), "Add didn't work.") - require.Equal(t, 4*time.Minute, atom.Sub(2*time.Minute), "Sub didn't work.") - - require.True(t, atom.CAS(4*time.Minute, time.Minute), "CAS didn't report a swap.") - require.Equal(t, time.Minute, atom.Load(), "CAS didn't set the correct value.") - - require.Equal(t, time.Minute, atom.Swap(2*time.Minute), "Swap didn't return the old value.") - require.Equal(t, 2*time.Minute, atom.Load(), "Swap didn't set the correct value.") - - atom.Store(10 * time.Minute) - require.Equal(t, 10*time.Minute, atom.Load(), "Store didn't set the correct value.") - - t.Run("JSON/Marshal", func(t *testing.T) { - atom.Store(time.Second) - bytes, err := json.Marshal(atom) - require.NoError(t, err, "json.Marshal errored unexpectedly.") - require.Equal(t, []byte("1000000000"), bytes, "json.Marshal encoded the wrong bytes.") - }) - - t.Run("JSON/Unmarshal", func(t *testing.T) { - err := json.Unmarshal([]byte("1000000000"), &atom) - require.NoError(t, err, "json.Unmarshal errored unexpectedly.") - require.Equal(t, time.Second, atom.Load(), - "json.Unmarshal didn't set the correct value.") - }) - - t.Run("JSON/Unmarshal/Error", func(t *testing.T) { - err := json.Unmarshal([]byte("\"1000000000\""), &atom) - require.Error(t, err, "json.Unmarshal didn't error as expected.") - assertErrorJSONUnmarshalType(t, err, - "json.Unmarshal failed with unexpected error %v, want UnmarshalTypeError.", err) - }) - - t.Run("String", func(t *testing.T) { - assert.Equal(t, "42s", NewDuration(42*time.Second).String(), - "String() returned an unexpected value.") - }) -} diff --git a/utils/normalize/normalize.go b/utils/normalize/normalize.go deleted file mode 100644 index 4726c3e..0000000 --- a/utils/normalize/normalize.go +++ /dev/null @@ -1,143 +0,0 @@ -// Package normalize is a set of tools for cleaning up URL s and formatting -// nostr OK and CLOSED messages. -package normalize - -import ( - "bytes" - "fmt" - "net/url" - "orly.dev/utils/chk" - "orly.dev/utils/log" - - "orly.dev/encoders/ints" -) - -var ( - hp = bytes.HasPrefix - WS = []byte("ws://") - WSS = []byte("wss://") - HTTP = []byte("http://") - HTTPS = []byte("https://") -) - -// URL normalizes the URL -// -// - Adds wss:// to addresses without a port, or with 443 that have no protocol -// prefix -// -// - Adds ws:// to addresses with any other port -// -// - Converts http/s to ws/s -func URL[V string | []byte](v V) (b []byte) { - u := []byte(v) - if len(u) == 0 { - return nil - } - u = bytes.TrimSpace(u) - u = bytes.ToLower(u) - // if the address has a port number, we can probably assume it is insecure - // websocket as most public or production relays have a domain name and a - // well-known port 80 or 443 and thus no port number. - // - // if a protocol prefix is present, we assume it is already complete. - // Converting http/s to websocket-equivalent will be done later anyway. - if bytes.Contains(u, []byte(":")) && - !(hp(u, HTTP) || hp(u, HTTPS) || hp(u, WS) || hp(u, WSS)) { - - split := bytes.Split(u, []byte(":")) - if len(split) != 2 { - log.D.F("Error: more than one ':' in URL: '%s'", u) - // this is a malformed URL if it has more than one ":", return empty - // since this function does not return an error explicitly. - return - } - p := ints.New(0) - _, err := p.Unmarshal(split[1]) - if chk.E(err) { - log.D.F("Error normalizing URL '%s': %s", u, err) - // again, without an error, we must return nil - return - } - if p.Uint64() > 65535 { - log.D.F( - "Port on address %d: greater than maximum 65535", - p.Uint64(), - ) - return - } - // if the port is explicitly set to 443 we assume it is wss:// and drop - // the port. - if p.Uint16() == 443 { - u = append(WSS, split[0]...) - } else { - u = append(WSS, u...) - } - } - - // if the prefix isn't specified as http/s or websocket, assume secure - // websocket and add wss prefix (this is the most common). - if !(hp(u, HTTP) || hp(u, HTTPS) || hp(u, WS) || hp(u, WSS)) { - u = append(WSS, u...) - } - var err error - var p *url.URL - if p, err = url.Parse(string(u)); chk.E(err) { - return - } - // convert http/s to ws/s - switch p.Scheme { - case "https": - p.Scheme = "wss" - case "http": - p.Scheme = "ws" - } - // remove trailing path slash - p.Path = string(bytes.TrimRight([]byte(p.Path), "/")) - return []byte(p.String()) -} - -// Msg constructs a properly formatted message with a machine-readable prefix -// for OK and CLOSED envelopes. -func Msg(prefix Reason, format string, params ...any) []byte { - if len(prefix) < 1 { - prefix = Error - } - return []byte(fmt.Sprintf(prefix.S()+": "+format, params...)) -} - -// Reason is the machine-readable prefix before the colon in an OK or CLOSED -// envelope message. Below are the most common kinds that are mentioned in -// NIP-01. -type Reason []byte - -var ( - AuthRequired = Reason("auth-required") - PoW = Reason("pow") - Duplicate = Reason("duplicate") - Blocked = Reason("blocked") - RateLimited = Reason("rate-limited") - Invalid = Reason("invalid") - Error = Reason("error") - Unsupported = Reason("unsupported") - Restricted = Reason("restricted") -) - -// S returns the Reason as a string -func (r Reason) S() string { return string(r) } - -// B returns the Reason as a byte slice. -func (r Reason) B() []byte { return r } - -// IsPrefix returns whether a text contains the same Reason prefix. -func (r Reason) IsPrefix(reason []byte) bool { - return bytes.HasPrefix( - reason, r.B(), - ) -} - -// F allows creation of a full Reason text with a printf style format. -func (r Reason) F(format string, params ...any) []byte { - return Msg( - r, format, params..., - ) -} diff --git a/version/version b/version/version deleted file mode 100644 index a1c2c6a..0000000 --- a/version/version +++ /dev/null @@ -1 +0,0 @@ -v0.1.1 \ No newline at end of file