Commit Graph

101 Commits

Author SHA1 Message Date
Louis Singer
a95a829b20 Delay unilateral exit and support send to onchain address (#117)
* add delay on redeem close + forfeit close

* increase default round lifetime (16 minutes min)

* add sequence to final pset

* update CLI and server to support delayed vtxos oncahin

* rename future to "locked"

* add configurable EXIT_DELAY variable

* renaming

* rename "close" --> "closure"

* rename "close" to "closure"

* error message config.go
2024-02-22 16:47:52 +01:00
Pietralberto Mazza
7c8ee7ab12 Give expiration details only when flag is set (#116) 2024-02-21 14:47:39 +01:00
Louis Singer
936f9c5f51 Drop useless encoding (#110)
* drop asec private key encoding

* remove pubkey/relaykey/url encoding in common pkg

* fix pubkey encoding

* remove SecKey
2024-02-20 17:35:11 +01:00
Louis Singer
ffcf08420f Add built-in cli to docker container (#114)
* add -faucet flag in scripts/build

* localhost guard on Faucet request

* add ark cli into docker image

* "BUILD_FLAG" => "BUILD_ARGS", "-faucet" => "with-faucet"

* [docker] use alpine:3.14 instead of debian

* Revert changes

* Expose docker volume for embedded wallet datadir

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
2024-02-20 17:28:08 +01:00
Louis Singer
b8e0914ba9 [Client] Add vtxo expiration details to balance & Fix coin selection
* add expiry details in balance command

* coin selection: sort vtxos by olderFirst

* rename type

* balance: add next expiration

* add next expiration in offchain_balance json

* print duration in nextExpiration

* fix dust coin selection

* refactor sort
2024-02-20 17:10:18 +01:00
João Bordalo
10c19dd7d9 blog: update Understanding Ark Liquidity Requirements (#73)
* uses mermaid to explain liquidity requirements

* adds introduction

* Update website/blog/2023-12-14-liquidity-requirements/index.md

Co-authored-by: Marco Argentieri <3596602+tiero@users.noreply.github.com>
Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>

* rephrase

---------

Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>
Co-authored-by: Marco Argentieri <3596602+tiero@users.noreply.github.com>
2024-02-19 17:40:25 +01:00
João Bordalo
7c528daef7 Add README to server (#106)
* adds readme to ark/server

* Update server/README.md

Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>

* Update server/README.md

Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>

* Update server/README.md

Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>

---------

Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>
Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
2024-02-19 15:06:21 +01:00
Pietralberto Mazza
bcd66d7ae7 Fixes (#107) 2024-02-13 17:38:55 +01:00
Louis Singer
9944a3cc48 [client] Improve coinselection & verbosity (#104)
* cli logs + handle dust amount

* add wallet initialized

* Update client/common.go

Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
Signed-off-by: Louis Singer <41042567+louisinger@users.noreply.github.com>

---------

Signed-off-by: Louis Singer <41042567+louisinger@users.noreply.github.com>
Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
2024-02-12 18:02:09 +01:00
João Bordalo
7778b6b5a1 [client] Add command to dump private key (#101)
* adds dumpPrivKey command

* Update client/dump.go

Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>

---------

Signed-off-by: João Bordalo <bordalix@users.noreply.github.com>
Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
2024-02-12 14:28:11 +01:00
Pietralberto Mazza
99961d9fd5 Update event and projection stores in sync (#102) 2024-02-12 14:07:15 +01:00
Pietralberto Mazza
dc00d60585 Rename folders (#97)
* Rename arkd folder & drop cli

* Rename ark cli folder & update docs

* Update readme

* Fix

* scripts: add build-all

* Add target to build cli for all platforms

* Update build scripts

---------

Co-authored-by: tiero <3596602+tiero@users.noreply.github.com>
2024-02-09 19:32:58 +01:00
Pietralberto Mazza
0d8c7bffb2 Handle tls connection with asp (#96) 2024-02-09 17:20:14 +01:00
João Bordalo
ee2a416297 Add timeline to non-cooperative exit (#92)
* show vtxo tree with radix 4

* leaving.md:
- fix links to nomenclature
- add timeline to non-cooperative exit
2024-02-09 17:18:19 +01:00
Louis Singer
53bd542167 Fix checking lifetime in client (#93)
* handle vtxo lifetime in noah send command, ask for comfirmation

* remove confirm question in noah send
2024-02-09 16:50:10 +01:00
Pietralberto Mazza
6a71ff86ea Update docker (#95) 2024-02-09 16:25:55 +01:00
Louis Singer
a348f6c771 Hotfix in sweep flow (#94) 2024-02-09 15:24:06 +01:00
Pietralberto Mazza
2cffc2907c Support docker (#91)
* Move dockerifle and add compose

* Use named volumes
2024-02-09 11:24:48 +01:00
Louis Singer
287db4e08a Support round expiration and sweep vtxos (#70)
* sweeper base implementation

* sweeper service final implementation

* fixes

* fix CSV script

* RoundSwept event fix & test

* remove Vtxos after a sweep transaction

* ARK_ROUND_LIFETIME config

* remove TxBuilder.GetLifetime

* refactor sweeper

* use GetTransaction blocktime

* polish and comments

* fix linting

* pair programming fixes

* several fixes

* clean Println

* fixes

* linter fixes

* remove infrastructure deps from application layer

* Fixes

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
2024-02-08 16:58:04 +01:00
Pietralberto Mazza
58aa36b7e7 Hotfix: restore vtxos watch & handle dust when crafting pool tx (#89)
* Add check before printing log

* Check for uncofirmed or confirmed utxos (vtxos)

* Handle dust amount when crafting pool tx

* Clean
2024-02-08 16:08:53 +01:00
Pietralberto Mazza
940214f699 Detect redemptions and mark vtxos has redeemed (#87)
* Update ocean protos & Add blockchain scanner

* Detect redemptions and mark vtxos as redeemed

* Update comment

* Fixes

* Fix watched event type

* Fixes

* Fixes

* Restore watching vtxos at startup

* Update deps
2024-02-08 13:40:28 +01:00
Louis Singer
b2e034cf0e Refactor tx-builder/covenant (#88)
* clean tx-builder/covenant/tree.go

* rename "createRoot" --> "createBinaryTree"

* replace node.psets by an iterative function "createTreeTransactions"

* merge function

* unspendable point as bytes + remove psetWithLevel

* re-add extra leaf level in congestion tree

* polishing tx-builder/covenant

* remove emptyNonce var

* cleaning tree.go

* improve node.outputs()

* Fix var type

* Fixes

* fix linting

* Renaming and reordering

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
2024-02-08 04:51:01 +01:00
Louis Singer
d4ee064245 Send unsigned pool transactions to clients (#85)
* replace Transfer by SelectUtxos

* Wallet.SignPset: handle unset WitnessUtxo

* fix linter

* renaming variables

* add witnessUtxo while creating pool transaction

* add EstimateFees in ports.Wallet

* replace createTestPoolTx by a constant pset
2024-01-24 16:08:50 +01:00
Louis Singer
5dba216a98 Congestion tree validation (#84)
* add common/pkg/tree validation

* update noah go.mod

* cleaning and fixes

* fix builder_test.go

* Fix deferred func

* fix even number of vtxos in congestion tree

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
2024-01-23 15:38:43 +01:00
Louis Singer
3407fd277a Forfeit transactions: signing process (#81)
* sign forfeit transactions

* revert txid + move SignVtxos func

* Fix nolint

* Fix

* fix connectorsToInputArgs function

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
2024-01-18 17:17:23 +01:00
Pietralberto Mazza
f037622b91 Fix tests (#82) 2024-01-18 16:47:11 +01:00
Louis Singer
cf78fc1ab3 Add support for unilateral exit (#79)
* v0 unilateral redemption

* add fee outputs to congestion tree

* unilateral exit

* rework unilateral exit verbosity

* substract fee from vtxo amount

* remove unused functions and variables

* fix after reviews

* Update noah/explorer.go

Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
Signed-off-by: Louis Singer <41042567+louisinger@users.noreply.github.com>

* remove bufferutils

---------

Signed-off-by: Louis Singer <41042567+louisinger@users.noreply.github.com>
Co-authored-by: Pietralberto Mazza <18440657+altafan@users.noreply.github.com>
2024-01-16 14:13:47 +01:00
Pietralberto Mazza
b438eb638f Make receivers flag optional (#76) 2024-01-10 12:39:05 +01:00
tiero
46a85816ff improve roadmap 2023-12-30 02:19:40 +01:00
tiero
a3b335a6bc improve roadmap 2023-12-30 02:18:30 +01:00
tiero
bf76d977e2 Improve Roadmap page 2023-12-29 23:43:12 +01:00
Pietralberto Mazza
d9a450c229 Add flag for single receiver (#75) 2023-12-29 17:48:01 +01:00
Pietralberto Mazza
d150c4bbac Add support for collaborative redemption of vtxos & Changes to ark wallet (#72)
* Add internal support for collaborative exit

* Update protos and interface layer

* Fixes after proto updates

* Fix printing json & Do not print ark pubkey in config

* Add collaborative redeem command

* Polish

* Add address validation

* Fix building tree without right branch

* Fixes and validation checks

* Fixes

* Fix counting complete queued payments

* Add relays

* Add and compute onchain balance concurrently

* Tiny refactor

* Merge `config connect` into `init` cmd
2023-12-29 17:09:50 +01:00
Marco Argentieri
022bc67ab8 Add Roadmap page (#74) 2023-12-28 19:40:16 +01:00
Pietralberto Mazza
1bf808c96a Hotfix address derivation (#71) 2023-12-20 16:55:00 +01:00
Pietralberto Mazza
a2d8149692 Hotfix GetRound validation check (#67) 2023-12-18 14:48:47 +01:00
João Bordalo
dec11f9773 hot fix: timelocks on nomenclature 2023-12-15 16:37:52 +00:00
Marco Argentieri
8b0f1d0a54 blog: improve wording (#66)
* blog: improve wording

* blog: improve wording

* blog: capitalize Money velocity

* blog: capitalize Money velocity
2023-12-14 15:54:42 +01:00
Marco Argentieri
141533aa49 blog: use right date (#65) 2023-12-14 15:39:30 +01:00
Marco Argentieri
c0ca6415bb enabled blog (#63) 2023-12-14 15:22:24 +01:00
Pietralberto Mazza
317b3273a8 Create ark account if not existing at startup (#61)
* Create ark account if not existing at startup

* Fixes
2023-12-14 15:13:33 +01:00
Louis Singer
51bc673e66 Add covenant-based congestion tree (#62)
* covenant based tx builder

* remove relative time delta

* txbuilder/covenant add leaf boolean in node

* txbuilder/covenant final version

* support covenantType

* add GetLeafOutputScript

* remove printLn

* fix linting

* Update asp/internal/app-config/config.go

Co-authored-by: João Bordalo <bordalix@users.noreply.github.com>
Signed-off-by: Louis Singer <41042567+louisinger@users.noreply.github.com>

---------

Signed-off-by: Louis Singer <41042567+louisinger@users.noreply.github.com>
Co-authored-by: João Bordalo <bordalix@users.noreply.github.com>
2023-12-14 14:02:37 +01:00
Louis Singer
325ef38197 Fix propagation of RoundFailed events (#60) 2023-12-12 15:46:43 +01:00
Pietralberto Mazza
6d00ee280c Fix dangling payments (#58) 2023-12-12 15:11:25 +01:00
Pietralberto Mazza
3985bd4e14 Cleanup & Add config and launcher (#57)
* Fixes

* Fixes to domain layer:
* Add Leaf bool field to know to fix the returned list of leaves
* Add non-persisted UnsignedForfeitTxs to RoundFinalizationStarted
* Store only error msg when round fails instead of full error

* Fix wallet interface:
* Add Close() to close conn with wallet
* Add GetAsset() to fix missing asset err when calling Transfer()

* Fix gocron scheduler to correctly run/build the project

* Fix badger repo implementation:
* Fix datadirs of projection stores
* Return error if current round not found
* Fix round event deserialization

* Fix TxBuilder interface & dummy impl:
* Pass asp pubkey as arg of the defined functions
* Fix connectorsToInputArgs to return the right number of ins
* Fix getTxid() to return the id of an hex encoded tx too
* Fix createConnectors() to return a tx if there's only 1 connector
* Add leaf bool field to psetWithLevel in case a leaf is not in the last level
* Fix node's isLeaf() check
* Move to hex encoded pubkeys instead of ark encoded

* Fix app layer:
* Add Start() and Stop() to the interface & Expect raw pubkeys instead of strings as args
* Source & cache pubkey from wallet at startup
* Drop usage of scheduler and schedule next task based on occurred round events
* Increase verbosity
* Use hex instead of ark encoding to store receveirs' pubkeys
* Lower faucet amount from 100k to 10k sats in total
* Fix finalizeRound() to persist round events even if it failed
* Add view() to forfeitTxMap to enrich RoundFinalizationEvent with unsigned forfeit txs

* Add app config

* Fix interface layer:
* Remove repo manager from handler factory
* Fix GetEventStream to forward events to stream once they arrive from app layer
* Return missing unsigned forfeit txs in RoundFinalizationEvent
* Fix extracting user pubkey from address
* Add log interceptors
* Add config struct
* Add factory
* Clean interface

* Add config and launcher

* Tidy deps & Set defaut round interval to 30secs for dev mode
2023-12-12 14:55:22 +01:00
Louis Singer
e5df6cfc39 Change congestion tree represenation (#50)
* add domain.CongestionTree + modify ports.TxBuilder

* rename Node members

* improve txbuilder testing

* congestion tree as matrix in protobuf spec

* compile stubs & update grpc handlers

* fix proto specs

* application/service.go use node.Txid field
2023-12-08 18:45:40 +01:00
Louis Singer
8d7b934f46 Dockerize buf (#51)
* dockerized buf

* Remove build-buf

* fix CI

* buf-lint-action revert version

* buf lint in CI

---------

Co-authored-by: altafan <18440657+altafan@users.noreply.github.com>
2023-12-08 16:03:00 +01:00
Louis Singer
5a5167c40c [noah] Add pubkey and network to state (#46) 2023-12-08 14:50:33 +01:00
João Bordalo
4df605aff1 Update payments.md 2023-12-08 06:35:24 +00:00
Marco Argentieri
88755a3320 website: hide non-ready pages and add non-coop exit in Leaving the Ark (#48) 2023-12-07 16:41:42 +01:00