Skip to content

Commit 500da25

Browse files
committed
feat: add paykit module
- Add paykit module and core functions - Add docs & tests as needed - Bump version to 0.1.32 - Update bindings
1 parent 0e66950 commit 500da25

37 files changed

+10376
-303
lines changed

Cargo.lock

Lines changed: 1122 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
[package]
22
name = "bitkitcore"
3-
version = "0.1.31"
3+
version = "0.1.32"
44
edition = "2021"
55

6+
[features]
7+
default = ["pubky"]
8+
pubky = ["dep:pubky", "paykit-lib/pubky"]
9+
610
[lib]
711
crate-type = ["cdylib", "staticlib", "rlib"]
812
name = "bitkitcore"
@@ -34,6 +38,10 @@ bitcoin-address-generator = "0.2.0"
3438
uuid = { version = "1.16.0", features = ["v4"] }
3539
hex = "0.4.3"
3640
bip39 = "2.0"
41+
paykit-lib = { git = "https://github.com/pubky/paykit-rs", features = ["pubky"] }
42+
pubky = { version = "0.6.0-rc.6", optional = true }
43+
base64 = "0.22.1"
44+
urlencoding = "2.1.3"
3745

3846
[dev-dependencies]
3947
tokio = { version = "1.40.0", features = ["full"] }
@@ -43,18 +51,3 @@ test-case = "3.3.1"
4351
tempfile = "3.2"
4452
serial_test = "3.2.0"
4553
rust_decimal = "1.30"
46-
47-
[target.armv7-linux-androideabi]
48-
rustflags = [
49-
"-C", "link-arg=-Wl,--allow-multiple-definition",
50-
]
51-
52-
[target.aarch64-linux-android]
53-
rustflags = [
54-
"-C", "link-arg=-Wl,--allow-multiple-definition",
55-
]
56-
57-
58-
[[bin]]
59-
name = "example"
60-
path = "example/main.rs"

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
import PackageDescription
55

6-
let tag = "v0.1.31"
7-
let checksum = "919d015a27448207dc26e54a07c846355ae7d78bfc970914940d7d5cc101811f"
6+
let tag = "v0.1.32"
7+
let checksum = "4451c33768d8f71519060b3212b6c2b75980a8d2c8d3593ad0fdccab597df648"
88
let url = "https://github.com/synonymdev/bitkit-core/releases/download/\(tag)/BitkitCore.xcframework.zip"
99

1010
let package = Package(

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
- Derive addresses for specified paths
3131
- Retrieve account information
3232
- Handle responses from Trezor devices
33+
- Paykit Module
34+
- Integration with Pubky homeservers for payment endpoint management
35+
- Import authenticated sessions from Pubky Ring via deeplinks
36+
- Publish payment endpoints (Bitcoin addresses, Lightning invoices)
37+
- Retrieve payment endpoints from other Pubky users
38+
- Session lifecycle management and authentication
3339

3440
## Available Modules: Methods
3541
- Scanner
@@ -436,6 +442,61 @@
436442
common: Option<CommonParams>,
437443
) -> Result<DeepLinkResult, TrezorConnectError>
438444
```
445+
- Paykit:
446+
- [create_pubky_ring_session_request](src/modules/paykit/README.md#api-reference): Generate a URL to request a session from Pubky Ring
447+
```rust
448+
fn create_pubky_ring_session_request(
449+
callback_url: String,
450+
additional_params: Option<HashMap<String, String>>
451+
) -> Result<String, PaykitError>
452+
```
453+
- [parse_paykit_deeplink](src/modules/paykit/README.md#api-reference): Parse a deeplink URL containing a session token
454+
```rust
455+
fn parse_paykit_deeplink(url: String) -> Result<PaykitDeeplink, PaykitError>
456+
```
457+
- [create_transport_from_session_token](src/modules/paykit/README.md#api-reference): Create an authenticated session from a token
458+
```rust
459+
async fn create_transport_from_session_token(
460+
token: SessionToken
461+
) -> Result<PubkyAuthenticatedTransport, PaykitError>
462+
```
463+
- [set_payment_endpoint](src/modules/paykit/README.md#api-reference): Store a payment endpoint on the user's homeserver
464+
```rust
465+
async fn set_payment_endpoint(
466+
client: &PubkyAuthenticatedTransport,
467+
method: MethodId,
468+
data: EndpointData
469+
) -> Result<(), PaykitError>
470+
```
471+
- [remove_payment_endpoint](src/modules/paykit/README.md#api-reference): Remove a payment endpoint from the user's homeserver
472+
```rust
473+
async fn remove_payment_endpoint(
474+
client: &PubkyAuthenticatedTransport,
475+
method: MethodId
476+
) -> Result<(), PaykitError>
477+
```
478+
- [get_payment_list](src/modules/paykit/README.md#api-reference): Retrieve all payment methods for a given user
479+
```rust
480+
async fn get_payment_list(
481+
reader: &PubkyUnauthenticatedTransport,
482+
payee: &PublicKey
483+
) -> Result<SupportedPayments, PaykitError>
484+
```
485+
- [get_payment_endpoint](src/modules/paykit/README.md#api-reference): Retrieve a specific payment endpoint
486+
```rust
487+
async fn get_payment_endpoint(
488+
reader: &PubkyUnauthenticatedTransport,
489+
payee: &PublicKey,
490+
method: &MethodId
491+
) -> Result<Option<EndpointData>, PaykitError>
492+
```
493+
- [get_known_contacts](src/modules/paykit/README.md#api-reference): Get contacts list for a given user
494+
```rust
495+
async fn get_known_contacts(
496+
reader: &PubkyUnauthenticatedTransport,
497+
key: &PublicKey
498+
) -> Result<Vec<PublicKey>, PaykitError>
499+
```
439500

440501
## Building the Bindings
441502

bindings/android/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ android.useAndroidX=true
33
android.enableJetifier=true
44
kotlin.code.style=official
55
group=com.synonym
6-
version=0.1.31
6+
version=0.1.32
-3.78 MB
Binary file not shown.
-2.82 MB
Binary file not shown.
-1.39 MB
Binary file not shown.
-2.03 MB
Binary file not shown.

0 commit comments

Comments
 (0)