271 Commits

Author SHA1 Message Date
d52d1682ab bump: version 0.1.0 → 0.1.1 2024-09-05 01:40:23 -04:00
1902b3bbcf fix(release): remove unnecessary quotes in tag pattern 2024-09-05 01:39:51 -04:00
b398db02cc
Feature/fix devops (#7)
* feat: add new tag-on-merge workflow
2024-09-05 01:38:04 -04:00
77a18c4449 chore(release): update goreleaser workflow to release on v tags 2024-09-05 01:30:06 -04:00
ab75dccac0 refactor: remove unused image building workflow 2024-09-05 01:28:26 -04:00
8010e6b069
Feature/update dockerfile (#6)
* chore: remove unused new.Dockerfile

* feat: add DID model definitions

* fix: Fix EncodePublicKey method in KeyInfo struct

* feat: Update `EncodePublicKey` to be the inverse of `DecodePublicKey`

* refactor: update AssetInfo protobuf definition

* fix: update default assets with correct asset types

* fix: Initialize IPFS client and check for mounted directories

* feat: Improve IPFS client initialization and mount checking

* feat: Add local filesystem check for IPFS and IPNS

* fix: Use Unixfs().Get() instead of Cat() for IPFS and IPNS content retrieval

* feat: Update GetCID and GetIPNS functions to read data from IPFS node

* fix: Ensure IPFS client is initialized before pinning CID

* feat: Add AddFile and AddFolder methods

* feat: add IPFS file system abstraction

* feat: Implement IPFS file, location, and filesystem abstractions

* refactor: remove unused functions and types

* refactor: remove unused FileSystem interface

* feat: add initial wasm entrypoint

* feat: add basic vault command operations

* docs: add vault module features

* test: remove test for MsgUpdateParams

* refactor: Replace PrimaryKey with Property struct in zkprop.go

* feat: Update the `CreateWitness` and `CreateAccumulator` and `VerifyWitness` and `UpdateAccumulator` to Use the new `Accumulator` and `Witness` types. Then Clean up the code in the file and refactor the marshalling methods

* <no value>

* feat: add KeyCurve and KeyType to KeyInfo in genesis

* feat: add WASM build step to devbox.json

* feat: Add zkgate.go file

* feat: Uncomment and modify zkgate code to work with Property struct

* feat: Merge zkgate.go and zkprop.go logic

* feat: implement API endpoints for profile management

* refactor: remove unused template file

* feat(orm): remove unused ORM models

* feat: add persistent SQLite database support in WASM

* fix: Update module names in protobuf files

* feat: Add method to initialize SQLite database

* fix: update go-sqlite3 dependency to version 1.14.23

* feat: introduce database layer

* feat: Implement database layer for Vault node

* feature/update-dockerfile

* feat: Add keyshares table

* fix: Reorder the SQL statements in the tables.go file

* feat: Update the `createCredentialsTable` method to match the proper Credential struct

* feat: Update createProfilesTable and add createPropertiesTable

* feat: Add constant SQL queries to queries.go and use prepared statements in db.go

* feat: Add createKeysharesTable to internal/db/db.go

* feat: Update `createPermissionsTable` to match Permissions struct

* feat: Add database enum types

* feat: Add DIDNamespace and PermissionScope enums

* feat: Add DBConfig and DBOption types

* feat: Update the db implementation to use the provided go library

* fix: update db implementation to use go-sqlite3 v0.18.2

* fix: Refactor database connection and statement handling

* feat: Simplify db.go implementation

* feat: Convert constant SQL queries to functions in queries.go and update db.go to use prepared statements

* feat: Add models.go file with database table structs

* fix: Remove unused statement map and prepare statements

diff --git a/internal/db/db.go b/internal/db/db.go
index 201d09b..d4d4d4e 100644
--- a/internal/db/db.go
+++ b/internal/db/db.go
@@ -32,11 +32,6 @@ func Open(config *DBConfig) (*DB, error) {
 		Conn: conn,
 	}

-	if err := createTables(db); err != nil {
-		conn.Close()
-		return nil, fmt.Errorf("failed to create tables: %w", err)
-	}
-
 	return db, nil
 }

@@ -61,114 +56,3 @@ func createTables(db *DB) error {
 	return nil
 }

-// AddAccount adds a new account to the database
-func (db *DB) AddAccount(name, address string) error {
-	return db.Exec(insertAccountQuery(name, address))
-}
-
-// AddAsset adds a new asset to the database
-func (db *DB) AddAsset(name, symbol string, decimals int, chainID int64) error {
-	return db.Exec(insertAssetQuery(name, symbol, decimals, chainID))
-}
-
-// AddChain adds a new chain to the database
-func (db *DB) AddChain(name, networkID string) error {
-	return db.Exec(insertChainQuery(name, networkID))
-}
-
-// AddCredential adds a new credential to the database
-func (db *DB) AddCredential(
-	handle, controller, attestationType, origin string,
-	credentialID, publicKey []byte,
-	transport string,
-	signCount uint32,
-	userPresent, userVerified, backupEligible, backupState, cloneWarning bool,
-) error {
-	return db.Exec(insertCredentialQuery(
-		handle,
-		controller,
-		attestationType,
-		origin,
-		credentialID,
-		publicKey,
-		transport,
-		signCount,
-		userPresent,
-		userVerified,
-		backupEligible,
-		backupState,
-		cloneWarning,
-	))
-}
-
-// AddProfile adds a new profile to the database
-func (db *DB) AddProfile(
-	id, subject, controller, originURI, publicMetadata, privateMetadata string,
-) error {
-	return db.statements["insertProfile"].Exec(
-		id, subject, controller, originURI, publicMetadata, privateMetadata,
-	)
-}
-
-// AddProperty adds a new property to the database
-func (db *DB) AddProperty(
-	profileID, key, accumulator, propertyKey string,
-) error {
-	return db.statements["insertProperty"].Exec(
-		profileID, key, accumulator, propertyKey,
-	)
-}
-
-// AddPermission adds a new permission to the database
-func (db *DB) AddPermission(
-	serviceID string,
-	grants []DIDNamespace,
-	scopes []PermissionScope,
-) error {
-	grantsJSON, err := json.Marshal(grants)
-	if err != nil {
-		return fmt.Errorf("failed to marshal grants: %w", err)
-	}
-
-	scopesJSON, err := json.Marshal(scopes)
-	if err != nil {
-		return fmt.Errorf("failed to marshal scopes: %w", err)
-	}
-
-	return db.statements["insertPermission"].Exec(
-		serviceID, string(grantsJSON), string(scopesJSON),
-	)
-}
-
-// GetPermission retrieves the permission for the given service ID
-func (db *DB) GetPermission(serviceID string) ([]DIDNamespace, []PermissionScope, error) {
-	row := db.statements["getPermission"].QueryRow(serviceID)
-
-	var grantsJSON, scopesJSON string
-	if err := row.Scan(&grantsJSON, &scopesJSON); err != nil {
-		return nil, nil, fmt.Errorf("failed to get permission: %w", err)
-	}
-
-	var grants []DIDNamespace
-	if err := json.Unmarshal([]byte(grantsJSON), &grants); err != nil {
-		return nil, nil, fmt.Errorf("failed to unmarshal grants: %w", err)
-	}
-
-	var scopes []PermissionScope
-	if err := json.Unmarshal([]byte(scopesJSON), &scopes); err != nil {
-		return nil, nil, fmt.Errorf("failed to unmarshal scopes: %w", err)
-	}
-
-	return grants, scopes, nil
-}
-
-// Close closes the database connection and finalizes all prepared statements
-func (db *DB) Close() error {
-	for _, stmt := range db.statements {
-		stmt.Finalize()
-	}
-	return db.Conn.Close()
-}
diff --git a/internal/db/queries.go b/internal/db/queries.go
index 807d701..e69de29 100644
--- a/internal/db/queries.go
+++ b/internal/db/queries.go
@@ -1,79 +0,0 @@
-package db
-
-import "fmt"
-
-// Account queries
-func insertAccountQuery(name, address string) string {
-	return fmt.Sprintf(`INSERT INTO accounts (name, address) VALUES (%s, %s)`, name, address)
-}
-
-// Asset queries
-func insertAssetQuery(name, symbol string, decimals int, chainID int64) string {
-	return fmt.Sprintf(
-		`INSERT INTO assets (name, symbol, decimals, chain_id) VALUES (%s, %s, %d, %d)`,
-		name,
-		symbol,
-		decimals,
-		chainID,
-	)
-}
-
-// Chain queries
-func insertChainQuery(name string, networkID string) string {
-	return fmt.Sprintf(`INSERT INTO chains (name, network_id) VALUES (%s, %d)`, name, networkID)
-}
-
-// Credential queries
-func insertCredentialQuery(
-	handle, controller, attestationType, origin string,
-	credentialID, publicKey []byte,
-	transport string,
-	signCount uint32,
-	userPresent, userVerified, backupEligible, backupState, cloneWarning bool,
-) string {
-	return fmt.Sprintf(`INSERT INTO credentials (
-		handle, controller, attestation_type, origin,
-		credential_id, public_key, transport, sign_count,
-		user_present, user_verified, backup_eligible,
-		backup_state, clone_warning
-	) VALUES (%s, %s, %s, %s, %s, %s, %s, %d, %t, %t, %t, %t, %t)`,
-		handle, controller, attestationType, origin,
-		credentialID, publicKey, transport, signCount,
-		userPresent, userVerified, backupEligible,
-		backupState, cloneWarning)
-}
-
-// Profile queries
-func insertProfileQuery(
-	id, subject, controller, originURI, publicMetadata, privateMetadata string,
-) string {
-	return fmt.Sprintf(`INSERT INTO profiles (
-		id, subject, controller, origin_uri,
-		public_metadata, private_metadata
-	) VALUES (%s, %s, %s, %s, %s, %s)`,
-		id, subject, controller, originURI,
-		publicMetadata, privateMetadata)
-}
-
-// Property queries
-func insertPropertyQuery(profileID, key, accumulator, propertyKey string) string {
-	return fmt.Sprintf(`INSERT INTO properties (
-		profile_id, key, accumulator, property_key
-	) VALUES (%s, %s, %s, %s)`,
-		profileID, key, accumulator, propertyKey)
-}
-
-// Permission queries
-func insertPermissionQuery(serviceID, grants, scopes string) string {
-	return fmt.Sprintf(
-		`INSERT INTO permissions (service_id, grants, scopes) VALUES (%s, %s, %s)`,
-		serviceID,
-		grants,
-		scopes,
-	)
-}
-
-// GetPermission query
-func getPermissionQuery(serviceID string) string {
-	return fmt.Sprintf(`SELECT grants, scopes FROM permissions WHERE service_id = %s`, serviceID)
-}

* fix: update Makefile to use sonrd instead of wasmd

* feat: Add targets for templ and vault in Makefile and use only make in devbox.json

* feat: add SQLite database support

* bump: version 0.6.0 → 0.7.0

* refactor: upgrade actions to latest versions
2024-09-05 01:24:57 -04:00
fd82cf4f3d chore: simplify build scripts 2024-08-31 18:54:14 -04:00
dcf502773a feat: add DID method for each coin 2024-08-31 17:53:17 -04:00
ec399eb275 refactor: add field to 2024-08-31 16:54:16 -04:00
e668d5f2cb Update proto types 2024-08-31 12:49:44 -04:00
b579212464 refactor: Update KeyKind Enum to have proper naming conventions 2024-08-31 12:24:43 -04:00
a2d83bfea9 fix: remove unused imports and simplify KeyInfo message 2024-08-31 12:24:42 -04:00
0696ef8b94 feat: Expand KeyType enum and update KeyInfo message in genesis.proto 2024-08-31 12:21:41 -04:00
c0e616a78a feat: Add whitelisted key types to genesis params 2024-08-31 12:21:40 -04:00
f642ad8a98 refactor: Update DIDNamespace to have proper naming convention 2024-08-31 12:03:06 -04:00
35846b9192 feat: Add DID grants protobuf definition 2024-08-31 12:03:05 -04:00
9dff21bbfd feat: Add fields to KeyInfo struct to distinguish CBOR and standard blockchain key types 2024-08-31 11:37:44 -04:00
704682ead4 feat: Add new message types for AssetInfo, ChainInfo, Endpoint, ExplorerInfo, FeeInfo, and KeyInfo 2024-08-31 11:37:43 -04:00
cfd6bddac2 refactor: expose ports directly in docker-compose 2024-08-29 18:43:05 -04:00
b2b939f7ad fix: bind node ports to localhost 2024-08-29 18:35:20 -04:00
eac85d36ec fix: Update docker-compose network name to dokploy-network 2024-08-29 15:04:03 -04:00
eed72b7542 fix: Update network name to dokploy 2024-08-29 15:01:56 -04:00
9ae2ea42a4 feat: run sonr-node container in testnet network and make network external 2024-08-29 14:59:11 -04:00
89701a188e fix: remove unused port mapping 2024-08-29 14:54:35 -04:00
4d20e46aa5 fix: Update docker-compose.yaml to use correct volume path 2024-08-29 14:48:38 -04:00
092e20efe8 refactor: remove unused port mappings 2024-08-29 14:36:17 -04:00
998cfdd321 refactor: streamline script execution 2024-08-29 14:31:25 -04:00
23f1b97421 chore: remove unused dependency 2024-08-29 14:24:50 -04:00
b09953f2fb fix: update docker-compose volume name 2024-08-29 14:23:21 -04:00
8edb78f514 fix: Update docker-compose.yaml to use shell directly for sonrd command 2024-08-29 14:12:00 -04:00
c74c6b1084 fix: replace "sh" with "/bin/sh" in docker-compose.yaml command 2024-08-29 14:11:16 -04:00
45e0219940 feat: Add docker-compose.yaml file to start a Sonr testnet node 2024-08-29 14:09:56 -04:00
6438fdf944 chore: replace CMD with ENTRYPOINT for sonrd 2024-08-29 14:07:50 -04:00
76f6391587 refactor: use CMD instead of ENTRYPOINT in Dockerfile 2024-08-29 08:45:53 -04:00
641fe3cf9a refactor(deps): Upgrade Debian base image to 11 2024-08-28 23:14:12 -04:00
28b064aa52 fix: Update runner image dependencies for debian-11 2024-08-28 23:13:54 -04:00
8d42b80ab8 chore(deps): update base image to debian:11-slim 2024-08-28 23:10:40 -04:00
89afd837ff chore(deps): update golang to 1.22 2024-08-28 21:48:31 -04:00
21f4fdba7e fix(deps): update golang image to 1.21 2024-08-28 21:35:37 -04:00
7ba09cc345 feat: configure Sonr testnet environment 2024-08-28 20:39:56 -04:00
945e748b0e feat: Update Dockerfile to start and run a testnet 2024-08-28 20:18:21 -04:00
22e0afa00f fix(chains): update nomic chain build target 2024-08-28 20:14:12 -04:00
a929e61d01 chore: Remove unused configuration files 2024-08-26 19:38:08 -04:00
a827602fa5 master 2024-08-26 10:37:03 -04:00
ca96fa1deb build: Add Docker Compose configuration 2024-08-22 10:06:31 -04:00
564b9f1152 fix: Update proc_list_width in mprocs.yaml 2024-08-21 15:08:34 -04:00
861fbf501d fix: Add service to database when registering 2024-08-21 14:53:03 -04:00
1810ee1c7f
feat: add enums.pulsar.go file for PermissionScope enum (#4)
* feat: add enums.pulsar.go file for PermissionScope enum

* refactor: remove PERMISSION_SCOPE_IDENTIFIERS_ENS enum value

* feat: Add MsgRegisterService to handle service registration

The commit message for these changes would be:

feat: Add MsgRegisterService to handle service registration

This commit adds a new message type `MsgRegisterService` to the DID module's transaction proto file. This message allows users to register a new service with a given permission scope and origin URI. The domain must have a valid TXT record containing the public key.

The changes include:

- Adding the `MsgRegisterService` message type with fields for authority, origin URI, and scopes
- Adding the `MsgRegisterServiceResponse` message type to handle the response
- Updating the Msg service to include a new `RegisterService` RPC method
- Implementing the `RegisterService` method in the keeper

This feature allows users to register new services on the DID chain, which is an important part of the overall DID functionality.

* (no commit message provided)

* fix: Add ProveWitness and SyncVault RPCs

The commit message should be:

feat: Add ProveWitness and SyncVault RPCs

This change adds two new RPCs to the DID module:

1. ProveWitness: An operation to prove the controller has a valid property using ZK Accumulators.
2. SyncVault: Synchronizes the controller with the Vault Motr DWN WASM Wallet.

These new RPCs allow for more advanced DID management functionality.

* fix: Remove unused `Meta` message from `genesis.proto`

* refactor: Simplify the types and properties to keep a consistent structure for the blockchain

* (no commit message provided)

* {}

* feat: add Equal methods for AssetInfo and ChainInfo types
2024-08-10 18:27:11 -04:00
8b9fc949e6 feat: add Equal methods for AssetInfo and ChainInfo types 2024-08-10 18:19:50 -04:00
b67df866d4 {} 2024-08-10 17:55:28 -04:00