Jump to content


  • Content Count

  • Joined

  • Last visited

About mitchlang009

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. @Dangell7 I responded to your github issue so I'll just paste that here:
  2. I'll be keeping an eye on this as it looks like the Xpring SDK doesn't have support for escrow and crypto conditions which I'll need. 2 steps forward, 3 steps back... What features would you guys like to see focused on?
  3. Jk, I'm just happy that there are official client libraries now for iOS and Android. I just tried out the Swift version and I think people are going to build some cool stuff with it.
  4. TLDR: I was building a Swift Library but now that Xpring has released their client libraries (https://github.com/xpring-eng/Xpring-SDK) I’m not sure if I will keep working on it. This all started when I wanted to integrate an XRP wallet with an iOS app I have been developing. I realized there wasn’t a library for Swift yet so I decided to build one. While I still had a lot of work left to do, I did have it working so that I could generate wallets, serialize, sign and submit transactions.. A couple of days ago Xpring released official client libraries for Swift and Java and now I’m not sure that I will finish working on mine. I originally started out building a wrapper around the JavaScript API but ran into a lot of issues. I ended up with a Swift solution that used C++ code from https://github.com/segrax/xrp-vanity to generate the wallet. XRPKit: https://github.com/MitchLang009/XRPKit Features: Generating wallets using the standard family seed (C++ code adapted from this) Serializing transactions (used this as a guide/template) Offline signing Basic API calls (account_tx, account_info, submit, fee) To Do: Add support for tags More serialization test cases Exception and error handling Status: It’s still pretty rough and needs a lot of work to be ready for real use. I would like to move all of the C++ code into pure Swift and get rid of the OpenSSL dependency eventually. I think mobile apps will be a major part of adoption. As iOS makes up a good portion of mobile phones, having a library available will make it easier for other developers to integrate XRP in their apps. I’m probably going to use the official Xpring SDK but will leave this repo up in case other people find it useful. Any feedback is very much appreciated! Thanks!
  5. I'm not sure if this is reasonable but something I think would be useful is an option to require a condition with EscrowCancel like EscrowFinish has. This would be useful for letting a 3rd party decide whether the funds get transferred or not and not relying on a time based lock.
  6. So kind of weird but it seems to work in Incognito mode. I'm on macOS 10.14.4 and Chrome 74.0.3729.131. I am signed into my google account in the screenshot on the left.
  7. Thanks @devnullprod, this will be very useful! Just so you know, I did have an issue opening the links in Chrome but they worked in Firefox, something to do with a WebSocket.
  8. Gotcha, I've been putting this off but I guess it's time. Thanks!
  9. I am submitting transactions to https://s.altnet.rippletest.net:51234 using this account: rwXyn2XHyJXdzXRRrovrq7Ff82gvwjjrNy I can see the transactions on Bithomp: https://test.bithomp.com/explorer/rwXyn2XHyJXdzXRRrovrq7Ff82gvwjjrNy But not on https://testnet.data.api.ripple.com/v2/accounts/rwXyn2XHyJXdzXRRrovrq7Ff82gvwjjrNy/ Am I missing something? Where does Bithomp get testnet data?
  10. Thanks for the suggestion, ZerpLotto is an interesting project (with better odds than the state lottos). I might be overly paranoid but I don't think I could sleep at night if I had a server that had access to an account containing any amount of other people's money.
  11. I'm interested in how a wagering system could be built using the XRP ledger. This could be used for esports gaming where users all pay an entry fee and then the sum is paid to the winner after some event. It seems like this couldn't be completely trustless because someone has to be the authority on what the outcome was and who won, but could it be done without the third party ever holding a significant amount of the funds? The best I can think of is that when the players enter a match they have to create a conditioned escrow transaction to a third party that only the third party can fulfill. Once the match is decided, the third party releases all of the funds. The third party then sends the sum to the winner. The third party would only have the funds for a limited time so it decreases the potential for problems if the third party is attacked. There would also have to be some mechanism that prevents the third party from releasing the funds until the match is decided.
  12. I was also wondering if you could cancel an escrow transaction using a crypto condition. Could this be used for a wagering system? Person A and person B both create an escrow transaction to each other that only a trusted 3rd party C can fulfill/cancel. Based on the outcome of the wager event, C cancels one transaction and fulfills the other.
  13. In case anyone comes across this it ended up looking like this: public static func entropy() -> [UInt8]? { var bytes = [UInt8](repeating: 0, count: 16) let status = SecRandomCopyBytes(kSecRandomDefault, bytes.count, &bytes) if status == errSecSuccess { // Always test the status. return bytes } return nil } public enum SeedType { case ed25519 case secp256k1 } public static func encodeSeed(entropy: [UInt8], type: SeedType) throws -> String { if entropy.count != 16 { throw EncodeSeedError.invalidBufferSize } let version: [UInt8] = type == .ed25519 ? [0x01, 0xE1, 0x4B] : [0x21] let versionEntropy: [UInt8] = version + entropy let check = [UInt8](Data(versionEntropy).sha256().sha256().prefix(through: 3)) let versionEntropyCheck: [UInt8] = versionEntropy + check return String(base58Encoding: Data(versionEntropyCheck), alphabet: Base58String.xrpAlphabet) }
  14. I'm a little confused trying to recreate the family seed generation process using Swift for iOS and am working through all the subsequent function calls that keypairs.generateSeed() makes. Is there a written explanation or pseudocode/diagram of how the family seed is encoded from a source of entropy? Thanks!
  15. Thanks Sukrim. I wasn't sure whether the API took the least significant byte of the integers or whether it had to be an array of bytes. I found this function https://developer.apple.com/documentation/security/1399291-secrandomcopybytes, which looks to be what I need rather than generating an array of Integers. Appreciate it!
  • Create New...