Commit Graph

42 Commits

Author SHA1 Message Date
Cassandra Heart
2391c3a5e3 feat: storage registry support (#1052)
This PR adds support for storage events and includes the following changes:

Adds support for storage events in the protobufs
Updates the server to handle rent registry events
Updates the logger to include rent registry and storage admin registry events
Adds CLI option for L2 RPC URL
Adds methods to submit rent registry and storage admin registry events in the mock hub
Updates the sync engine to use L2 events provider
2023-07-12 18:43:41 -05:00
Sanjay
0223f670fa chore: fix flaky validations test (#1110) 2023-07-11 18:02:02 -07:00
Sanjay
e072a0e535 chore: Release 1.3.4 (#1109) 2023-07-11 17:34:17 -07:00
Sanjay
4fa7a56153 Rename UserDataType.FNAME to USERNAME (#1108) 2023-07-11 17:16:53 -07:00
Sanjay
cd0ddd6d24 feat: Support ENS names in the hub (#1101)
* feat: Add ENS username proof support

* Add UserNameProof store

* ENS name ownership validations

* Add remaining ens validations

* Generate events correctly

* Allow setting ens names on UserData and handle revoking it

* Add changeset and cli flag
2023-07-10 23:40:50 -07:00
Akshaan Kakar
2bfcaf4ec3 feat: create a system to track network propagation delay (#970)
* Add new proto definitions

* Add ping and ack functions

* Add gossip event handler

* Add cli argument for network latency mode

* Add ping message scheduler

* Fix imports

* Add tests for message handler

* Add metrics store

* Fix cli arg name

* Add multinode setup and fix metric logging

* Add docker-compose file for multinode test setup

* Drop hard coded id paths

* preserve backward compatibility of process file path

* Enable gossip network diagnostics

* Add tests 1

* Clean up gossipNode tests

* Fix lint

* Lower frequency for latency pings

* Add tests for metrics

* Improve coverage computation algo

* Clean up

* Fixes from PR feedback

* Fixes from PR feedback

* Fixes from PR feedback

* Rename field for consistency

* Add jitter to ping cron

Add jitter to ping cron

* Log legible peerIds

* Fix import paths

* Update log field name

* Consolidate metrics recorder and ping job

* Fix docker compose

* Add time-to-merge metric

* Confine metrics logic to single class

* Clean up

* Fix div by zero

* Use peerId string as metrics key

* Drop unused getter

* Refactor metrics to be keyed by peerId

* Fix tests

* Clean up and fix tests

* Store metrics in DB

* Replace interfaces with types

* Fix testS

* WIP: Adding metrics serde

* Replace map with object to allow for metrics serde

* Add test for serde

* Fix security warnings

* Fix coverage logging

* Add test

* Move message handling to hub

* Fix timestamp overflow

* Lower ping freq and fix coverage logging

* Add peer network to logs

* Fix merge time metric

* Revert "Fix merge time metric"

This reverts commit 76beb5f11a.

* Expire metrics after logging

* Rename command line arguments

* Fixes + test updateS

* Fixes + test updateS

* Add test for expiry

* Add test for ping function

* Drop unused function

* Record merge times for all merges

* Don't accumulate message count metrics

* Add check for successful message merge

* Re-add generated code

* Fix types

* Re-add generated code

* Fix imports

* fix imports
2023-07-07 21:02:59 -04:00
Varun Srinivasan
4c38067c15 chore: switch from eslint/prettier to rome (#1074)
* chore: add rome config files

* chore: add rome into configs and ci

* chore: remove eslint annotations

* chore: update annotations for rome ignores

* chore: remove prettier
2023-07-04 19:09:15 -07:00
Varun Srinivasan
f176841daf chore: prepare for rome migration (#1077) 2023-07-04 17:48:54 -07:00
Varun Srinivasan
9ffbcc3a99 chore: prepare for rome-tools migration by formatting files (#1073)
* chore(@farcaster/core): apply rome formatter

* chore(@farcaster/hub-nodejs): apply rome formatter

* chore(@farcaster/hub-web): apply rome formatter

* chore(@farcaster/hubble): apply rome formatter
2023-07-04 14:30:23 -07:00
Sanjay
abb7df9cdd chore: Release 1.3.3 (#1065) 2023-07-02 21:52:27 -07:00
Tony D'Addeo
b33928c991 test: add test for link builder fns (#1055) 2023-06-30 11:23:48 -05:00
Cassandra Heart
1ca8fdcba5 Revert "feat: storage registry support (#1030)" (#1051)
This reverts commit a9da418dbc.
2023-06-29 17:20:36 -05:00
Cassandra Heart
a9da418dbc feat: storage registry support (#1030)
* Initial commit of L2 provider/storage contract integration

* l2 storage admin

* storage store

* update mockhub

* viem

* adjust import

* adjust import

* weave in config

* flesh out l2 test

* storage registry test

* strawman the storage tests

* null check

* switch type

* further updates, updated abi

* temporarily disabling test until anvil issue is sorted out

* more tests

* weird slowdown in node18 test on ci

* ok

* confirm iterator ordering

* rework timestamp into event message

* more coverage
2023-06-29 16:53:22 -05:00
Sanjay
5a1baaedbb feat: Switch from name events to username proofs (#1049)
* feat: switch to username proofs

* Add rpc endpoint

* Add changeset
2023-06-28 17:36:11 -07:00
Tony D'Addeo
9e03df8579 chore: publish package version (#1048) 2023-06-28 15:42:59 -05:00
Tony D'Addeo
bfdbfea6b0 chore: use viem in @farcaster/core (#1037)
* chore: use viem instead of ethers

* add changeset

* remove more ethers usages

* move ethers to dev dependecy

* add signUserNameProof to Eip712Signer

* expand test coverage

* update changeset

* add makeUserNameProofClaim

* prefer @noble/hashes/utils in examples
2023-06-26 11:27:13 -05:00
Tony D'Addeo
159c62df7a chore(hubble): use viem to interact with ethereum (#997)
* chore: use viem to interact with ethereum

* add ViemLocalEip712Signer to exports

* add codecov exceptions

* upgrade viem

* add log for historically synced blocks

* fix test

* poll every 4 seconds

* clean up pre-viem 1.0 code

* update viem

* update comments
2023-06-22 14:50:18 -05:00
Sanjay
f1c15510d1 chore: release 1.3.1 (#1031) 2023-06-21 19:47:51 -07:00
Sanjay
f1c6b25c23 feat: Support fname registry server and store user name proofs (#1014)
* feat: Initial fname registry provider class

* flesh out fname registry provider functionality

* Update to match fip

* Use new query params and gradefully handle errors

* feat: add support for verifying username proofs

* Validate server signatures before submitting username proofs

* Add changeset and default fname server url
2023-06-21 19:33:01 -07:00
Sanjay
9654197697 chore: Release 1.3 (#1000)
* chore: Release 1.3

* bump version
2023-05-31 10:02:16 -07:00
Cassandra Heart
2bc598abcc feat: Links (#973)
* rolling up changes for links FIP

* typeToSetPostfix

* pr feedback

* consistency to avoid js quirks

* add versioning logic and update tests

* include version check in mergeMessages

* update protobuf comment to reflect nit

* added changeset

* code coverage
2023-05-24 19:42:26 -05:00
Sanjay
37f515f049 feat: Add app version to contact info and log it when syncing (#990)
* feat: Add app version to contact info and log it when syncing

* Add changeset
2023-05-23 17:32:47 -07:00
Shane da Silva
71eef0c559 Re-publish 1.2.3 as 1.2.4 (#969)
We made a mistake during the publishing process which resulted in
missing files. Re-publish with the proper build.
2023-05-15 15:07:39 -07:00
Shane da Silva
a4cb2c4b75 chore: Release 1.2.3 (#968) 2023-05-15 15:01:33 -07:00
Shane da Silva
651df4120f Remove unnecessary @faker-js/faker dependency from core (#961)
This dependency is only required for dev, not production. It's used by
Hubble when generating fake data, however, so move it to a production
dependency for Hubble.
2023-05-11 15:52:05 -07:00
Anthony D'Addeo
2ca66b179c chore: upgrade to @noble/curves (#947)
* chore: update @farcaster/core to use @noble/curves

* chore: update hubble to use @noble/curves

* add changeset

	new file:   .changeset/eleven-lies-wait.md

* preserve async interface

* update changeset
2023-05-10 12:26:07 -05:00
Sanjay
f7a62a52f1 chore: Release 1.2.2 (#949) 2023-05-08 17:28:13 -07:00
Sanjay
1236b4e956 feat: Add a status hubble command for friendly reporting of current hub status (#944)
* feat: Suport sync status rpc call

* Add sync status hubble command

* Fix generated file

* Changeset

* Fix isSyncing check

* Rename to status and report db stats as well

* Fix error
2023-05-08 14:48:24 -07:00
Sagar Dhawan
530878831d fix: improve handling of duplicate messages on gossip (#919)
* fix: improve handling of duplicate messages on gossip

* fix tests

* fix changeset

* make gossip backwards compatible

* fix tests
2023-05-05 13:02:52 -07:00
Paul Fletcher-Hill
2e633db09b feat: reject prunable messages on merge (#928)
* feat: don't merge messages that would immediately be pruned

* Fix tests and minor cleanup/review comments

* Support all other stores

* Add changeset

* use prune iterator with keys available and expand cast store tests

* re-add prune iterator args

* Additional tests

* Add tests for other stores

---------

Co-authored-by: Sanjay Raveendran <sanjayprabhu@gmail.com>
2023-05-04 10:35:32 -07:00
Paul Fletcher-Hill
d2cb5e4e30 fix: validate parentUrl and targetUrl comprehensively (#935) 2023-05-03 21:04:05 -04:00
Sanjay
52fc714970 chore: Release 1.2.1 (#925) 2023-04-27 14:36:13 -07:00
Michael Huang
6a8486017e feat: implement ViemLocalEip712Signer (#787)
* Implement viemEip712Signer

* Add tests

* clean

* Stubs

* Deps

* Fixes

* Clean

* Fix bugs

* Rename

* Add changeset

* rename

* clean up

* rename

* update import

* Upgrade

* Update test

* ViemEip712Signer -> ViemLocalEip712Signer

* clean up

* Convert hash bytes to hex string before signing

* use random wallet

* Add test for mnemonic account

* Simplify

* Use random mnemonic phrase

* More clean up

* Add comment

* refactor EIP-712 signer tests into util

* update changeset to patch core

---------

Co-authored-by: Tony D'Addeo <tony@merklemanufactory.com>
Co-authored-by: Paul Fletcher-Hill <pfletcherhill@gmail.com>
2023-04-27 12:40:35 -04:00
Sanjay
421c385453 feat: Add sync stats to getInfo call (#916)
* refactor: Rename sync events flag for clarity

* feat: Add sync statuts to HubInfo RPC call

* feat: Add sync stats to getInfo rpc call

* re-patch hub-web to use default export as before

* changeset
2023-04-25 10:40:59 -07:00
Paul Fletcher-Hill
c5a6aac6e4 changeset version (#889) 2023-04-19 00:43:57 -04:00
Paul Fletcher-Hill
87b2789124 feat: support arbitrary target types (#847)
* support CastId embeds, url parents and reaction targets

* docs(changeset): support CastId embeds, cast parent URLs, and reaction target URLs

* fix validations test

* add version and embeds deprecated validation

* docs(changeset): upgrade to protocol version 2023.4.19

* update protobuf generated code

* add reaction service tests

* add more examples to builder tests

* add more cast and reaction tests
2023-04-18 23:10:13 -04:00
Sanjay
562b9639b1 chore: Add test to ensure verification and claim must have same network (#836)
* chore: Add test to ensure verification and claim must have same network

* cleanup
2023-04-10 09:58:14 -07:00
Varun Srinivasan
038a647bd7 chore: release new versions (#839) 2023-04-06 17:47:33 -07:00
Sanjay
edea195dba feat: ensure hub networks match when syncing with peers (#837)
* feat: ensure hub networks match when syncing with peers

* send the network when gossiping
2023-04-06 17:29:20 -07:00
Paul Fletcher-Hill
64418e9495 changeset version (#820) 2023-04-04 23:28:23 -04:00
Paul Fletcher-Hill
1e4e5ba522 chore: update tsup configs (#819)
* update tsup configs

* add more browser options

* add changeset

* update browser versions
2023-04-04 23:21:01 -04:00
PangZhi
c4529a7ef2 feat: merge protobufs and utils into core package (#818)
* remove protobufs as a package, merge into utils

* update yarn.lock

* rename utils package to core

* update docker

* add changeset

* tsup config

* change schema path in workflow file

* update protobufs readme link
2023-04-04 19:21:30 -07:00