MitchLang009 / XRPKit

XRPKit is a Swift SDK built for interacting with the XRP Ledger
MIT License
8 stars 4 forks source link

Is this still active? #2

Closed dangell7 closed 4 years ago

dangell7 commented 4 years ago

I was curious if this was still active? XpringKit is extremely limited in what it can do. I was wondering if you were working on this still?

MitchLang009 commented 4 years ago

@dangell7 it's sort of active... I've made some progress toward turning this into a pure Swift library so that it can be used on Linux (server-side swift) in addition to macOS/iOS: I've removed the c++ and OpenSSL dependencies, removed FutureKit and Alamofire (don't support Linux), and added support for both secp256k1 and ed25591. All seems to be working. I haven't pushed those changes yet because I need to clean things up a little. I will try to get them up next week.

Going forward I will be adding support for destination tags, escrow. and multisig I hesitate to say this is active because I'm still not sure where this is headed. I need a cross-platform Swift library which XpringKit is not. I'm using this for a side project I'm building so I'm also not sure about the timeline for all of this... but I am planning to continue work on it. I should also note that this is the first crypto project I've worked on, this is going to need to be tested heavily before I would recommend anyone else using it in production.

dangell7 commented 4 years ago

@MitchLang009 Interesting... I didn't know swift was a server side language as well. Very Cool. Basically, Xpring is not moving fast enough and I fear they are derailing me, to further their own agenda. I also don't like how Xpring removes all the data and only gives me what "they" think I need. They also dont support web sockets, escrow, partial payments, etc. They really only do one thing. Payment.

What I like about the rpc is that it opens it up. To add escrow, its basically editing the call, where with GRPC/Xpring, you have to create the protobufs and map everything. Plus, they don't actually give me access to the server side protobufs. I'm not a huge fan if you can't tell. Basically I'm at the mercy of them, which I don't like.

I use them for creating a wallet with a mnemonic phrase and path, importing a wallet with mnemonic phrase/secret, and sign/send. But again, they forced that into one call which I don't believe is right.

I'm willing to write some tests, in Swift (don't know if that will play with your linux idea) if you want to continue? We could model a bit from Xpring, and then branch into our own...

My priorities are;

Websocket/Real Time Balance Escrow Partial Payment Exchange/Trust Lines

I have been developing on the blockchain for 2 years now. Mostly Ethereum. I have both nodes running on a server. We could use the server as like an official send server or not. lol Let me know your thoughts.

dangell7 commented 4 years ago

Also, Xpring isn't production ready either and they warn in many places that the functionality may change. If we do continue, lets remove that bit on the readme, and just warn users. I don't really want to send them to another sdk, if they landed here.

MitchLang009 commented 4 years ago

@dangell7 If you're willing to help I will certainly keep working on this. I think our priorities line up well. I'm also interested in integrating with the WebSocket API but I'm not sure whether that will break Linux support. We can look into options for it but may have to have a separate library, like XRPKit-WS or something that adds the WebSocket functionality. I have a lot of work I haven't pushed yet so I will work on getting that up here. It will probably be sometime Sunday or Monday though. Once that's up we can discuss where to go next.