├── Vendor
├── Sparkle
│ └── Sparkle.framework
│ │ ├── Versions
│ │ ├── Current
│ │ └── A
│ │ │ ├── Resources
│ │ │ ├── fr_CA.lproj
│ │ │ ├── pt.lproj
│ │ │ ├── Autoupdate.app
│ │ │ │ └── Contents
│ │ │ │ │ ├── PkgInfo
│ │ │ │ │ ├── MacOS
│ │ │ │ │ └── Autoupdate
│ │ │ │ │ ├── Resources
│ │ │ │ │ ├── AppIcon.icns
│ │ │ │ │ ├── SUStatus.nib
│ │ │ │ │ ├── ar.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── cs.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── da.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── de.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── el.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── en.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── es.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── fr.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── is.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── it.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── ja.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── ko.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── nb.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── nl.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── pl.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── ro.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── ru.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── sk.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── sl.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── sv.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── th.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── tr.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── uk.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── pt_BR.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── pt_PT.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ ├── zh_CN.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ └── zh_TW.lproj
│ │ │ │ │ │ └── Sparkle.strings
│ │ │ │ │ └── Info.plist
│ │ │ ├── SUStatus.nib
│ │ │ ├── ar.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── cs.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── da.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── de.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── el.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── en.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── es.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── fr.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── is.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── it.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── ja.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── ko.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── nb.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── nl.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── pl.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── ro.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── ru.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── sk.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── sl.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── sv.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── th.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── tr.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── uk.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── pt_BR.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── pt_PT.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── zh_CN.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ ├── zh_TW.lproj
│ │ │ │ ├── Sparkle.strings
│ │ │ │ ├── SUUpdateAlert.nib
│ │ │ │ ├── SUAutomaticUpdateAlert.nib
│ │ │ │ └── SUUpdatePermissionPrompt.nib
│ │ │ └── Info.plist
│ │ │ ├── Sparkle
│ │ │ └── Headers
│ │ │ ├── Sparkle.h
│ │ │ ├── SUVersionDisplayProtocol.h
│ │ │ ├── SUAppcast.h
│ │ │ ├── SUVersionComparisonProtocol.h
│ │ │ ├── SUStandardVersionComparator.h
│ │ │ └── SUAppcastItem.h
│ │ ├── Headers
│ │ ├── Resources
│ │ └── Sparkle
└── fonts
│ └── Open_Sans
│ ├── OpenSans-Bold.ttf
│ ├── OpenSans-Light.ttf
│ ├── OpenSans-Italic.ttf
│ ├── OpenSans-Regular.ttf
│ ├── OpenSans-Semibold.ttf
│ ├── OpenSans-BoldItalic.ttf
│ ├── OpenSans-ExtraBold.ttf
│ ├── OpenSans-LightItalic.ttf
│ ├── OpenSans-ExtraBoldItalic.ttf
│ └── OpenSans-SemiboldItalic.ttf
├── add.sh
├── status.sh
├── BitMarkets
├── en.lproj
│ └── InfoPlist.strings
├── resources
│ ├── app_icon
│ │ ├── icon_16x16.png
│ │ ├── icon_32x32.png
│ │ ├── icon_128x128.png
│ │ ├── icon_256x256.png
│ │ ├── icon_512x512.png
│ │ ├── icon_128x128@2x.png
│ │ ├── icon_16x16@2x.png
│ │ ├── icon_256x256@2x.png
│ │ ├── icon_32x32@2x.png
│ │ └── icon_515x512@2x.png
│ ├── icons
│ │ ├── categories
│ │ │ ├── tv.png
│ │ │ ├── bitcoin.png
│ │ │ ├── camera.png
│ │ │ ├── mobile.png
│ │ │ ├── music.png
│ │ │ ├── sports.png
│ │ │ ├── clothing.png
│ │ │ ├── computing.png
│ │ │ └── litecoin.png
│ │ ├── left_active.png
│ │ ├── right_active.png
│ │ ├── Top
│ │ │ ├── add_active.png
│ │ │ ├── send_active.png
│ │ │ ├── add_inactive.png
│ │ │ ├── compose_active.png
│ │ │ ├── delete_active.png
│ │ │ ├── forward_active.png
│ │ │ ├── message_active.png
│ │ │ ├── refresh_active.png
│ │ │ ├── reply_active.png
│ │ │ ├── reply_inactive.png
│ │ │ ├── send_inactive.png
│ │ │ ├── delete_inactive.png
│ │ │ ├── message_inactive.png
│ │ │ ├── refresh_inactive.png
│ │ │ └── composeicon_inactive.png
│ │ ├── location_active.png
│ │ └── profile_active.png
│ ├── licenses
│ │ ├── bitmessage
│ │ │ └── COPYING.txt
│ │ ├── xmlrpc
│ │ │ └── LICENSE.txt
│ │ └── zipkit
│ │ │ └── COPYING.txt
│ └── categories copy.json
├── Images.xcassets
│ └── AppIcon.appiconset
│ │ ├── icon_16x16.png
│ │ ├── icon_32x32.png
│ │ ├── icon_128x128.png
│ │ ├── icon_16x16@2x.png
│ │ ├── icon_256x256.png
│ │ ├── icon_32x32@2x.png
│ │ ├── icon_512x512.png
│ │ ├── icon_128x128@2x.png
│ │ ├── icon_256x256@2x.png
│ │ ├── icon_515x512@2x.png
│ │ └── Contents.json
├── Bitmarkets.temp_caseinsensitive_rename-Prefix.pch
├── Classes
│ └── Market
│ │ ├── Groups
│ │ ├── MKRegion.h
│ │ ├── MKCategory.h
│ │ ├── MKMsgGroup.h
│ │ ├── MKMsgGroup.m
│ │ ├── MKGroup.h
│ │ └── MKRegion.m
│ │ ├── Base
│ │ ├── MKAboutNode.h
│ │ ├── Bitmarkets.h
│ │ ├── Bitmarkets.m
│ │ ├── MKDirectMessages.h
│ │ ├── MKUpdateMessage.h
│ │ ├── MKRootNode.h
│ │ ├── MKUpdatesSubscription.h
│ │ ├── MKMarketChannel.h
│ │ ├── MKMarkets.h
│ │ ├── MKUpdateMessage.m
│ │ └── MKMarkets.m
│ │ ├── Transactions
│ │ ├── Msg
│ │ │ ├── MKCancelConfirmed.h
│ │ │ ├── MKCancelConfirmed.m
│ │ │ ├── MKSellLockEscrowMsg.h
│ │ │ ├── MKConfirmRefundMsg.m
│ │ │ ├── MKConfirmPaymentMsg.m
│ │ │ ├── MKConfirmRefundMsg.h
│ │ │ ├── MKCancelMsg.h
│ │ │ ├── MKConfirmPaymentMsg.h
│ │ │ ├── MKConfirmLockEscrowMsg.h
│ │ │ ├── MKConfirmLockEscrowMsg.m
│ │ │ ├── MKLockMsg.h
│ │ │ ├── MKConfirmMsg.h
│ │ │ ├── MKMessages.h
│ │ │ ├── MKTxMsg.h
│ │ │ ├── MKLockMsg.m
│ │ │ ├── MKSetupLockMsg.h
│ │ │ ├── MKSellLockEscrowMsg.m
│ │ │ ├── MKMessages.m
│ │ │ ├── MKConfirmMsg.m
│ │ │ ├── MKCancelMsg.m
│ │ │ ├── MKTxMsg.m
│ │ │ ├── MKMsg.h
│ │ │ └── MKSetupLockMsg.m
│ │ ├── Sells
│ │ │ ├── Stages
│ │ │ │ ├── Bid
│ │ │ │ │ ├── MKRejectBidMsg.h
│ │ │ │ │ ├── MKAcceptBidMsg.h
│ │ │ │ │ ├── MKAcceptBidMsg.m
│ │ │ │ │ ├── MKRejectBidMsg.m
│ │ │ │ │ ├── MKSellBids.h
│ │ │ │ │ └── MKSellBid.h
│ │ │ │ ├── Post
│ │ │ │ │ ├── MKClosePostMsg.h
│ │ │ │ │ ├── MKClosePostMsg.m
│ │ │ │ │ ├── MKPostMsg.h
│ │ │ │ │ ├── MKPostMsg.m
│ │ │ │ │ └── MKPost.h
│ │ │ │ ├── Delivery
│ │ │ │ │ ├── MKSellPostedMsg.h
│ │ │ │ │ ├── MKSellPostedMsg.m
│ │ │ │ │ ├── MKSellDeliveryAddress.h
│ │ │ │ │ ├── MKSellDelivery.h
│ │ │ │ │ └── MKSellDeliveryAddress.m
│ │ │ │ ├── Lock
│ │ │ │ │ └── MKSellLockEscrow.h
│ │ │ │ ├── Release
│ │ │ │ │ ├── MKSellAcceptPaymentMsg.h
│ │ │ │ │ ├── MKSellAcceptPaymentMsg.m
│ │ │ │ │ ├── MKSellAcceptRefundRequestMsg.h
│ │ │ │ │ ├── MKSellRejectRefundRequestMsg.h
│ │ │ │ │ ├── MKSellReleaseEscrow.h
│ │ │ │ │ ├── MKSellAcceptRefundRequestMsg.m
│ │ │ │ │ └── MKSellRejectRefundRequestMsg.m
│ │ │ │ └── Complete
│ │ │ │ │ ├── MKSellComplete.h
│ │ │ │ │ └── MKSellComplete.m
│ │ │ ├── MKSells.h
│ │ │ ├── MKSells.m
│ │ │ └── MKSell.h
│ │ ├── Buys
│ │ │ ├── Stages
│ │ │ │ ├── Lock
│ │ │ │ │ ├── MKBuyLockEscrow.h
│ │ │ │ │ └── MKBuyLockEscrowMsg.h
│ │ │ │ ├── Release
│ │ │ │ │ ├── MKBuyPaymentMsg.h
│ │ │ │ │ ├── MKBuyPaymentMsg.m
│ │ │ │ │ ├── MKBuyPostRefundMsg.h
│ │ │ │ │ ├── MKBuyPostPaymentMsg.h
│ │ │ │ │ ├── MKBuyPostRefundMsg.m
│ │ │ │ │ ├── MKBuyPostPaymentMsg.m
│ │ │ │ │ ├── MKBuyRefundRequestMsg.h
│ │ │ │ │ ├── MKBuyRefundRequestMsg.m
│ │ │ │ │ └── MKBuyReleaseEscrow.h
│ │ │ │ ├── Bid
│ │ │ │ │ ├── MKBidMsg.h
│ │ │ │ │ ├── MKBuyBid.h
│ │ │ │ │ └── MKBidMsg.m
│ │ │ │ ├── Delivery
│ │ │ │ │ ├── MKBuyerAddressMsg.h
│ │ │ │ │ ├── MKBuyDeliveryAddress.h
│ │ │ │ │ ├── MKBuyDelivery.h
│ │ │ │ │ └── MKBuyerAddressMsg.m
│ │ │ │ └── Complete
│ │ │ │ │ ├── MKBuyComplete.h
│ │ │ │ │ └── MKBuyComplete.m
│ │ │ ├── MKBuys.h
│ │ │ ├── MKBuys.m
│ │ │ └── MKBuy.h
│ │ ├── MKTransactions.h
│ │ ├── MKStage.h
│ │ ├── MKEscrow.h
│ │ ├── MKTransaction.h
│ │ ├── MKEscrow.m
│ │ ├── MKStage.m
│ │ ├── MKDeliveryAddress.h
│ │ ├── MKLock.h
│ │ ├── MKRelease.h
│ │ └── MKTransactions.m
│ │ ├── Views
│ │ ├── MKStepView.h
│ │ ├── MKPanelView.h
│ │ ├── MKStepsView.h
│ │ ├── MKNodeView.h
│ │ ├── MKPanelManager.h
│ │ ├── MKPasswordView.h
│ │ ├── BNKeyView.h
│ │ ├── MKActionsView.h
│ │ ├── MKTextFieldCell.h
│ │ ├── BNWalletView.h
│ │ ├── MKStatusView.h
│ │ ├── MKAttachmentView.h
│ │ ├── MKTxProgressView.h
│ │ ├── MKDragFileWell.h
│ │ ├── MKNodeView.m
│ │ ├── MKPanelManager.m
│ │ ├── MKPasswordView.m
│ │ ├── MKPostView.h
│ │ ├── MKStepsView.m
│ │ ├── MKTextFieldCell.m
│ │ └── BNKeyView.m
│ │ └── Helpers
│ │ ├── MKCurrency.h
│ │ ├── MKExchangeRate.h
│ │ └── MKCurrency.m
├── main.m
├── MKAppDelegate.h
└── Bitmarkets.temp_caseinsensitive_rename-Info.plist
├── BitMarketsTests
├── en.lproj
│ └── InfoPlist.strings
├── BitMarketsTests.m
└── Bitmarkets.temp_caseinsensitive_renameTests-Info.plist
├── pull.sh
├── init.sh
├── find_projects_path_errors.sh
├── push.sh
├── Bitmarkets.xcodeproj
└── project.xcworkspace
│ └── contents.xcworkspacedata
├── dist
├── sign_update.sh
├── generate_keys.sh
├── generate_xml.sh
└── template.xml
├── .gitignore
├── Notes
├── ItemAttributes.txt
└── Escrow.txt
├── CHANGELOG
├── .gitmodules
├── commit.sh
├── checkout.sh
├── LICENSE
└── README.md
/Vendor/Sparkle/Sparkle.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Headers:
--------------------------------------------------------------------------------
1 | Versions/Current/Headers
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Sparkle:
--------------------------------------------------------------------------------
1 | Versions/Current/Sparkle
--------------------------------------------------------------------------------
/add.sh:
--------------------------------------------------------------------------------
1 | git submodule foreach --recursive git add .
2 | git add .
3 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr_CA.lproj:
--------------------------------------------------------------------------------
1 | fr.lproj
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt.lproj:
--------------------------------------------------------------------------------
1 | pt_BR.lproj
--------------------------------------------------------------------------------
/status.sh:
--------------------------------------------------------------------------------
1 | git status
2 | git submodule foreach --recursive git status
3 |
--------------------------------------------------------------------------------
/BitMarkets/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????
--------------------------------------------------------------------------------
/BitMarketsTests/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/pull.sh:
--------------------------------------------------------------------------------
1 | git submodule foreach --recursive git pull origin master
2 | git pull origin master
3 |
--------------------------------------------------------------------------------
/init.sh:
--------------------------------------------------------------------------------
1 | git submodule sync
2 | git submodule init
3 | git submodule update --init --recursive --force
4 |
5 |
--------------------------------------------------------------------------------
/find_projects_path_errors.sh:
--------------------------------------------------------------------------------
1 | find . -name project.pbxproj | awk '{print "echo " $1 "; grep Users " $1}' | bash
2 |
3 |
--------------------------------------------------------------------------------
/push.sh:
--------------------------------------------------------------------------------
1 | git submodule foreach --recursive git push origin master
2 | git push origin master
3 | git push origin --tags
4 |
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-Bold.ttf
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-Light.ttf
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_16x16.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_32x32.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/tv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/tv.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/left_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/left_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/right_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/right_active.png
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-Italic.ttf
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-Regular.ttf
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-Semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-Semibold.ttf
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_128x128.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_256x256.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_512x512.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/add_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/add_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/send_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/send_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/location_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/location_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/profile_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/profile_active.png
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-BoldItalic.ttf
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-ExtraBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-ExtraBold.ttf
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_128x128@2x.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_16x16@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_16x16@2x.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_256x256@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_256x256@2x.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_32x32@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_32x32@2x.png
--------------------------------------------------------------------------------
/BitMarkets/resources/app_icon/icon_515x512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/app_icon/icon_515x512@2x.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/add_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/add_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/compose_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/compose_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/delete_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/delete_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/forward_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/forward_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/message_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/message_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/refresh_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/refresh_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/reply_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/reply_active.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/reply_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/reply_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/send_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/send_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/bitcoin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/bitcoin.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/camera.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/mobile.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/music.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/sports.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/sports.png
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-LightItalic.ttf
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/delete_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/delete_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/message_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/message_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/refresh_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/refresh_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/clothing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/clothing.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/computing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/computing.png
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/categories/litecoin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/categories/litecoin.png
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Sparkle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Sparkle
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-ExtraBoldItalic.ttf
--------------------------------------------------------------------------------
/Vendor/fonts/Open_Sans/OpenSans-SemiboldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/fonts/Open_Sans/OpenSans-SemiboldItalic.ttf
--------------------------------------------------------------------------------
/BitMarkets/resources/icons/Top/composeicon_inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/resources/icons/Top/composeicon_inactive.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_16x16.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_32x32.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_128x128.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_256x256.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_512x512.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_515x512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/BitMarkets/Images.xcassets/AppIcon.appiconset/icon_515x512@2x.png
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/SUStatus.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/SUStatus.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Bitmarkets.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.nib
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib
--------------------------------------------------------------------------------
/BitMarkets/Bitmarkets.temp_caseinsensitive_rename-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #ifdef __OBJC__
8 | #import
9 | #endif
10 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/en.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/VoluntaryLabs/Bitmarkets/HEAD/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings
--------------------------------------------------------------------------------
/dist/sign_update.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 | set -o pipefail
4 | if [ "$#" -ne 2 ]; then
5 | echo "Usage: $0 update_archive private_key"
6 | exit 1
7 | fi
8 | openssl=/usr/bin/openssl
9 | $openssl dgst -sha1 -binary < "$1" | $openssl dgst -dss1 -sign "$2" | $openssl enc -base64
10 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Groups/MKRegion.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKRegion.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/24/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsgGroup.h"
10 |
11 | @interface MKRegion : MKMsgGroup
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Groups/MKCategory.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKCategory.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/23/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsgGroup.h"
10 |
11 | @interface MKCategory : MKMsgGroup
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKAboutNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAboutNode.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/21/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKAboutNode : NavInfoNode
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 4/15/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, const char * argv[])
12 | {
13 | return NSApplicationMain(argc, argv);
14 | }
15 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKCancelConfirmed.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKCancelConfirmed.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKCancelConfirmed : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Bid/MKRejectBidMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKRejectBidMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKRejectBidMsg : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Lock/MKBuyLockEscrow.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyLockEscrow.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLock.h"
10 |
11 | @interface MKBuyLockEscrow : MKLock
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKCancelConfirmed.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKCancelConfirmed.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKCancelConfirmed.h"
10 |
11 | @implementation MKCancelConfirmed
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKSellLockEscrowMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKLockEscrowMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLockMsg.h"
10 |
11 | @interface MKSellLockEscrowMsg : MKLockMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Post/MKClosePostMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKClosePostMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/18/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKClosePostMsg : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/Bitmarkets.h:
--------------------------------------------------------------------------------
1 | //
2 | // Bitmarkets.h
3 | // Bitmarkets
4 | //
5 | // Created by Steve Dekorte on 10/28/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface Bitmarkets : NSObject
12 |
13 | + nodeRoot;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyPaymentMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyPaymentMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTxMsg.h"
10 |
11 | @interface MKBuyPaymentMsg : MKTxMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmRefundMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmRefundMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmRefundMsg.h"
10 |
11 | @implementation MKConfirmRefundMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Delivery/MKSellPostedMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellPostedMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/23/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKSellPostedMsg : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Lock/MKSellLockEscrow.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellLockEscrow.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLock.h"
10 |
11 | @interface MKSellLockEscrow : MKLock
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Post/MKClosePostMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKClosePostMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/18/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKClosePostMsg.h"
10 |
11 | @implementation MKClosePostMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyPaymentMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyPaymentMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuyPaymentMsg.h"
10 |
11 | @implementation MKBuyPaymentMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyPostRefundMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyPostRefundMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/14/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKBuyPostRefundMsg : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmPaymentMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmPaymentMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmPaymentMsg.h"
10 |
11 | @implementation MKConfirmPaymentMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmRefundMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmRefundMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmMsg.h"
10 |
11 | @interface MKConfirmRefundMsg : MKConfirmMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Delivery/MKSellPostedMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellPostedMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/23/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellPostedMsg.h"
10 |
11 | @implementation MKSellPostedMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyPostPaymentMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyPostPaymentMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/14/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKBuyPostPaymentMsg : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKCancelMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKCancelMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLockMsg.h"
10 |
11 | @interface MKCancelMsg : MKLockMsg
12 |
13 | - (void)broadcast;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmPaymentMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmPaymentMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmMsg.h"
10 |
11 | @interface MKConfirmPaymentMsg : MKConfirmMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyPostRefundMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyPostRefundMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/14/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuyPostRefundMsg.h"
10 |
11 | @implementation MKBuyPostRefundMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmLockEscrowMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmLockEscrowMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmMsg.h"
10 |
11 | @interface MKConfirmLockEscrowMsg : MKConfirmMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmLockEscrowMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmLockEscrowMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmLockEscrowMsg.h"
10 |
11 | @implementation MKConfirmLockEscrowMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Bid/MKAcceptBidMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAcceptBidMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKAcceptBidMsg : MKMsg
12 |
13 | - (BOOL)send;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyPostPaymentMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyPostPaymentMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/14/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuyPostPaymentMsg.h"
10 |
11 | @implementation MKBuyPostPaymentMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyRefundRequestMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyRefundRequestMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTxMsg.h"
10 |
11 | @interface MKBuyRefundRequestMsg : MKTxMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKLockMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKTxMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTxMsg.h"
10 |
11 | @class MKLock;
12 |
13 | @interface MKLockMsg : MKTxMsg
14 |
15 | - (MKLock *)lockNode;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellAcceptPaymentMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellAcceptPaymentMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTxMsg.h"
10 |
11 | @interface MKSellAcceptPaymentMsg : MKTxMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Groups/MKMsgGroup.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMsgGroup.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/19/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKGroup.h"
10 | #import "MKMsg.h"
11 |
12 | @interface MKMsgGroup : MKGroup
13 |
14 | - (BOOL)handleMsg:(MKMsg *)mkMsg;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyRefundRequestMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyRefundRequestMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuyRefundRequestMsg.h"
10 |
11 | @implementation MKBuyRefundRequestMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/30/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKConfirmMsg : MKMsg
12 |
13 | @property (strong, nonatomic) NSDictionary *tx;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKMessages.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMessages.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/3/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKGroup.h"
10 | #import "MKPostMsg.h"
11 |
12 | @interface MKMessages : MKGroup
13 |
14 | - (MKPostMsg *)postMsg;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Complete/MKSellComplete.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellDelivery.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 |
11 | @interface MKSellComplete : MKStage
12 |
13 | - (BOOL)isComplete;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellAcceptPaymentMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellAcceptPaymentMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellAcceptPaymentMsg.h"
10 |
11 | @implementation MKSellAcceptPaymentMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Lock/MKBuyLockEscrowMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyLockEscrowMSg.h
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLockMsg.h"
10 |
11 | @interface MKBuyLockEscrowMsg : MKLockMsg
12 |
13 | - (void)broadcast;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Delivery/MKSellDeliveryAddress.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellDeliveryAddress.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/11/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKDeliveryAddress.h"
10 |
11 | @interface MKSellDeliveryAddress : MKDeliveryAddress
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellAcceptRefundRequestMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellAcceptRefundRequestMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTxMsg.h"
10 |
11 | @interface MKSellAcceptRefundRequestMsg : MKTxMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellRejectRefundRequestMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellRejectRefundRequestMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/14/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKSellRejectRefundRequestMsg : MKMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Release/MKBuyReleaseEscrow.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyReleaseEscrow.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKRelease.h"
10 |
11 | @interface MKBuyReleaseEscrow : MKRelease
12 |
13 | - (BOOL)isComplete;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKTransactions.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKTransactions.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/12/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsgGroup.h"
10 | #import "MKTransaction.h"
11 |
12 | @interface MKTransactions : MKMsgGroup
13 |
14 | - (void)update;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Bid/MKBidMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBidMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @class MKPost;
12 |
13 | @interface MKBidMsg : MKMsg
14 |
15 | - (void)setupForPost:(MKPost *)mkPost;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKTxMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKEscrowMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/7/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKTxMsg : MKMsg
12 |
13 | @property BNTx *tx;
14 |
15 | - (void)configureTx;
16 | - (BOOL)isTxConfirmed;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellReleaseEscrow.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellReleaseEscrow.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKRelease.h"
10 |
11 | @interface MKSellReleaseEscrow : MKRelease
12 |
13 | - (BOOL)isComplete;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKStepView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKStepView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/12/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKNodeView.h"
11 |
12 | @interface MKStepView : MKNodeView
13 |
14 | @property (assign, nonatomic) BOOL hasArrow;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | .DS_Store
3 | */build/*
4 | *.pbxuser
5 | !default.pbxuser
6 | *.mode1v3
7 | !default.mode1v3
8 | *.mode2v3
9 | !default.mode2v3
10 | *.perspectivev3
11 | !default.perspectivev3
12 | xcuserdata
13 | profile
14 | *.moved-aside
15 | DerivedData
16 | .idea/
17 | *.hmap
18 | *.xccheckout
19 |
20 | #CocoaPods
21 | Pods
22 |
23 | Bitmarkets.zip
24 | dist/keys/*
25 | .metadata
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKPanelView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKPanelView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/16/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface MKPanelView : NSView
13 |
14 | @property (strong, nonatomic) NSView *innerView;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellAcceptRefundRequestMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellAcceptRefundRequestMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellAcceptRefundRequestMsg.h"
10 |
11 | @implementation MKSellAcceptRefundRequestMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Release/MKSellRejectRefundRequestMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellRejectRefundRequestMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/14/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellRejectRefundRequestMsg.h"
10 |
11 | @implementation MKSellRejectRefundRequestMsg
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/Bitmarkets.m:
--------------------------------------------------------------------------------
1 | //
2 | // Bitmarkets.m
3 | // Bitmarkets
4 | //
5 | // Created by Steve Dekorte on 10/28/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "Bitmarkets.h"
10 | #import "MKRootNode.h"
11 |
12 | @implementation Bitmarkets
13 |
14 | + nodeRoot
15 | {
16 | return MKRootNode.sharedMKRootNode;
17 | }
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/MKSells.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSells.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKSell.h"
11 | #import "MKTransactions.h"
12 |
13 | @interface MKSells : MKTransactions
14 |
15 | - (MKSell *)addSell;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKLockMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKTxMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLockMsg.h"
10 | #import "MKLock.h"
11 |
12 | @implementation MKLockMsg
13 |
14 | - (MKLock *)lockNode
15 | {
16 | return (MKLock *)[self nodeParent];
17 | }
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Post/MKPostMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKPostMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @class MKPost;
12 |
13 | @interface MKPostMsg : MKMsg
14 |
15 | - (void)sendPost:(MKPost *)aPost;
16 | - (MKPost *)mkPost;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKDirectMessages.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKDirectMessages.h
3 | // Bitmarkets
4 | //
5 | // Created by Steve Dekorte on 12/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKDirectMessages : NSObject
12 |
13 | @property (assign, nonatomic) BOOL needsToFetch;
14 |
15 | - (void)fetch;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/MKBuys.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuys.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKBuy.h"
11 | #import "MKTransactions.h"
12 |
13 | @interface MKBuys : MKTransactions
14 |
15 | - (MKBuy *)addBuy;
16 |
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKStepsView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKStepsView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKNodeView.h"
11 |
12 | @interface MKStepsView : MKNodeView
13 |
14 | @property (assign, nonatomic) id delegate;
15 |
16 | - (void)syncFromNode;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Helpers/MKCurrency.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKCurrency.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 8/11/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKCurrency : NSObject
12 |
13 | @property (strong, nonatomic) NSNumber *btcAmount;
14 |
15 | - (NSString *)formattedPriceSetString;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Delivery/MKBuyerAddressMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyerAddressMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsg.h"
10 |
11 | @interface MKBuyerAddressMsg : MKMsg
12 |
13 | - (NSDictionary *)addressDict;
14 | - (void)setAddressDict:(NSDictionary *)aDict;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Complete/MKBuyComplete.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyComplete.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKBuyDeliveryAddress.h"
11 | #import "MKBuyerAddressMsg.h"
12 |
13 | @class MKBuy;
14 |
15 | @interface MKBuyComplete : MKStage
16 |
17 | - (BOOL)isComplete;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Delivery/MKBuyDeliveryAddress.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyDeliveryAddress.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/7/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKDeliveryAddress.h"
10 | #import "MKBuyerAddressMsg.h"
11 |
12 | @interface MKBuyDeliveryAddress : MKDeliveryAddress
13 |
14 | - (void)approve;
15 | - (BOOL)isApproved;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/BitMarkets/MKAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // BMKAppDelegate.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 4/15/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 | //#import "MKRootNode.h"
13 |
14 | @interface MKAppDelegate : NavAppController
15 |
16 | //@property (strong, nonatomic) MKRootNode *rootNode;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Bid/MKAcceptBidMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKAcceptBidMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKAcceptBidMsg.h"
10 |
11 | @implementation MKAcceptBidMsg
12 |
13 | - (NSString *)nodeTitle
14 | {
15 | return @"Bid Accepted";
16 | }
17 |
18 | - (BOOL)send
19 | {
20 | return [self sendToBuyer];
21 | }
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKNodeView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKNodeView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/16/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface MKNodeView : NavColoredView
13 |
14 | @property (strong, nonatomic) NavNode *node;
15 |
16 | - (void)layout; // subclasses should override
17 | - (void)syncFromNode; // subclasses should override
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKSetupLockMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSetupLockMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKLockMsg.h"
10 |
11 | @interface MKSetupLockMsg : MKLockMsg
12 |
13 | @property (strong, nonatomic) NSNumber *broadcastDateNumber;
14 |
15 | - (void)configureAndBroadcastTx;
16 | //- (void)broadcastIfNeeded;
17 |
18 | - (void)returnChangeToWallet;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Delivery/MKSellDelivery.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellDelivery.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKSellPostedMsg.h"
11 |
12 | @interface MKSellDelivery : MKStage
13 |
14 | @property (strong, nonatomic) NSNumber *hasViewedAddress;
15 |
16 | - (BOOL)isComplete;
17 |
18 | - (MKSellPostedMsg *)postedMsg;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKPanelManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKPanelManager.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/17/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKPanelView.h"
11 |
12 | @interface MKPanelManager : NSObject
13 |
14 | @property (strong, nonatomic) NSView *panelReceiver;
15 |
16 | + (MKPanelManager *)sharedPanelManager;
17 |
18 | - (MKPanelView *)openNewPanel;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Bid/MKRejectBidMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKRejectBidMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKRejectBidMsg.h"
10 |
11 | @implementation MKRejectBidMsg
12 |
13 | - (NSString *)nodeTitle
14 | {
15 | //if (self.isInBuy)
16 | return @"Bid Rejected";
17 | }
18 |
19 | - (BOOL)send
20 | {
21 | return [self sendToBuyer];
22 | }
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Bid/MKSellBids.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellBids.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKSellBid.h"
11 |
12 | @interface MKSellBids : MKStage
13 |
14 | //- (void)setAcceptedBid:(MKSellBid *)sellBid;
15 |
16 | - (MKSellBid *)acceptedBid;
17 | - (BOOL)isComplete;
18 |
19 | - (void)sendClosePost;
20 | - (void)rejectUnacceptedBids;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKPasswordView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKPasswordView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 7/20/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface MKPasswordView : NSView
13 |
14 | @property (strong, nonatomic) NavTextView *info;
15 | @property (strong, nonatomic) NSSecureTextField *password;
16 | @property (strong, nonatomic) NSSecureTextField *passwordConfirm;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Notes/ItemAttributes.txt:
--------------------------------------------------------------------------------
1 |
2 | region: array
3 | category: array
4 |
5 | title: short string
6 | description: long string
7 | quantity: number
8 | price: number
9 | attachments: [{}, ...]
10 |
11 | considering adding these:
12 |
13 | size: string
14 | color: string
15 | gender: M/F
16 | brand: string
17 | model: string
18 | year: number [1900-next year?]
19 | age: number
20 | condition: string
21 | grade: string, grade metric: string
22 | purity/quality: number %?
23 | milage: number
24 |
25 |
26 | [post, delete]
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKStage.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKStage.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKGroup.h"
10 |
11 | @class MKTransaction;
12 |
13 | @interface MKStage : MKGroup
14 |
15 | - (BOOL)isActive;
16 | - (BOOL)isComplete;
17 |
18 | - (MKTransaction *)transaction;
19 |
20 | - (MKStage *)nextStage;
21 | - (MKStage *)previousStage;
22 |
23 | - (BOOL)canDelete;
24 | - (BOOL)prepareToDelete;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKSellLockEscrowMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKLockEscrowMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellLockEscrowMsg.h"
10 | #import "MKLock.h"
11 |
12 | @implementation MKSellLockEscrowMsg
13 |
14 | - (void)configureTx
15 | {
16 | self.tx = [self.runningWallet newTx];
17 | [self.tx configureForEscrowWithInputTx:self.lockNode.setupLockMsg.tx];
18 | [self.tx lockInputs];
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/BNKeyView.h:
--------------------------------------------------------------------------------
1 | //
2 | // BNKeyView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 4/29/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface BNKeyView : NSView
12 |
13 | @property (strong, nonatomic) BNKey *node;
14 | @property (strong, nonatomic) NavView *navView;
15 | @property (strong, nonatomic) NSImageView *qrCodeImageView;
16 | @property (strong, nonatomic) NSTextView *qrCodeTextView;
17 | @property (assign, nonatomic) CGFloat qrWidth;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Bid/MKBuyBid.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyBid.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKBidMsg.h"
11 | #import "MKAcceptBidMsg.h"
12 | #import "MKRejectBidMsg.h"
13 |
14 | @interface MKBuyBid : MKStage
15 |
16 | - (MKBidMsg *)bidMsg;
17 | - (MKAcceptBidMsg *)acceptMsg;
18 | - (MKRejectBidMsg *)rejectMsg;
19 |
20 | - (BOOL)wasSent;
21 | - (BOOL)wasAccepted;
22 | - (BOOL)wasRejected;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKUpdateMessage.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKUpdateMessage.h
3 | // Bitmarkets
4 | //
5 | // Created by Steve Dekorte on 12/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface MKUpdateMessage : NSObject
13 |
14 | @property (strong, nonatomic) NSDictionary *dict;
15 | @property (strong, nonatomic) BMMessage *bmMessage;
16 |
17 | - (NSString *)version;
18 | - (BOOL)isNewer;
19 | - (void)deleteIfOlder;
20 | - (void)showAlert;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKEscrow.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKEscrow.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKCancelMsg.h"
11 | #import "MKCancelConfirmed.h"
12 |
13 | @class MKBuy;
14 | @class MKSell;
15 |
16 | @interface MKEscrow : MKStage
17 |
18 | @property (strong, nonatomic) NSString *error;
19 |
20 | - (MKBuy *)buy;
21 | - (BOOL)isBuy;
22 |
23 | - (MKSell *)sell;
24 | - (BOOL)isSell;
25 |
26 |
27 | - (BOOL)isCancelConfirmed;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Bid/MKSellBid.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellBid.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKGroup.h"
10 | #import "MKBidMsg.h"
11 | #import
12 |
13 | @interface MKSellBid : MKGroup
14 |
15 | @property (strong, nonatomic) NSString *error;
16 |
17 | - (MKBidMsg *)bidMsg;
18 |
19 | - (void)update;
20 |
21 | - (BOOL)wasAccepted;
22 | - (BOOL)wasRejected;
23 |
24 | - (void)accept;
25 | - (void)reject;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Delivery/MKBuyDelivery.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyDelivery.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKBuyDeliveryAddress.h"
11 | #import "MKBuyerAddressMsg.h"
12 |
13 | @class MKBuy;
14 |
15 | @interface MKBuyDelivery : MKStage
16 |
17 | - (MKBuyDeliveryAddress *)address;
18 | - (MKBuyerAddressMsg *)addressMsg;
19 | - (MKBuy *)buy;
20 |
21 | - (void)update;
22 | - (void)sendAddress;
23 | - (BOOL)isApproved;
24 |
25 | - (BOOL)isComplete;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKActionsView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKActionsView.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 2/21/14.
6 | // Copyright (c) 2014 Bitmarkets.org. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "MKTextView.h"
12 |
13 | @interface MKActionsView : NSView
14 |
15 | @property (assign, nonatomic) NavView *navView;
16 | @property (assign, nonatomic) NavNode *node;
17 |
18 | @property (strong, nonatomic) NavColoredView *group;
19 |
20 | - (void)prepareToDisplay;
21 | - (void)selectFirstResponder;
22 |
23 | - (BOOL)handlesNodeActions;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKTextFieldCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKTextFieldCell.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 7/1/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKTextFieldCell : NSTextFieldCell
12 |
13 | @property (assign, nonatomic) CGFloat marginLeft;
14 | @property (assign, nonatomic) CGFloat marginRight;
15 | @property (assign, nonatomic) CGFloat marginTop;
16 | @property (assign, nonatomic) CGFloat marginBottom;
17 |
18 | @property (assign, nonatomic) CGFloat bottomLineWidth;
19 | @property (strong, nonatomic) NSColor *lineColor;
20 |
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKMessages.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKMessages.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/3/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMessages.h"
10 | #import "MKPost.h"
11 |
12 | @implementation MKMessages
13 |
14 | - (id)init
15 | {
16 | self = [super init];
17 | return self;
18 | }
19 |
20 | - (NSNumber *)nodeSuggestedWidth
21 | {
22 | return @360;
23 | }
24 |
25 | - (NSString *)nodeTitle
26 | {
27 | return @"Messages";
28 | }
29 |
30 | - (MKPostMsg *)postMsg
31 | {
32 | return [self.children firstObjectOfClass:MKPost.class];
33 | }
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/BNWalletView.h:
--------------------------------------------------------------------------------
1 | //
2 | // BNWalletView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/26/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKNodeView.h"
10 | #import "MKStatusView.h"
11 |
12 | @interface BNWalletView : MKNodeView
13 |
14 | @property (assign, nonatomic) NavView *navView;
15 |
16 | @property (strong, nonatomic) MKStatusView *statusView;
17 | @property (strong, nonatomic) NSScrollView *scrollView;
18 | @property (strong, nonatomic) NSTableView *tableView;
19 | @property (strong, nonatomic) NSTextView *standinText;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/dist/generate_keys.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 | for file in "dsaparam.pem" "dsa_priv.pem" "dsa_pub.pem"; do
4 | if [ -e "$file" ]; then
5 | echo "There's already a $file here! Move it aside or be more careful!"
6 | exit 1
7 | fi
8 | done
9 |
10 | openssl="/usr/bin/openssl"
11 | $openssl gendsa <($openssl dsaparam 4096) -out dsa_priv.pem
12 | chmod 0400 dsa_priv.pem
13 | $openssl dsa -in dsa_priv.pem -pubout -out dsa_pub.pem
14 | chmod 0444 dsa_pub.pem
15 |
16 | echo "
17 | Generated private and public keys: dsa_priv.pem and dsa_pub.pem.
18 | BACK UP YOUR PRIVATE KEY AND KEEP IT SAFE!
19 | If you lose it, your users will be unable to upgrade!"
20 |
21 | open -R dsa_priv.pem
22 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKConfirmMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKConfirmMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/30/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKConfirmMsg.h"
10 |
11 | @implementation MKConfirmMsg
12 |
13 | - (id)init
14 | {
15 | self = [super init];
16 | [self addPropertyName:@"tx"];
17 | return self;
18 | }
19 |
20 | - (NSString *)nodeTitle
21 | {
22 | return [NSString stringWithFormat:@"Transaction %@", [self.tx objectForKey:@"txid"]];
23 | }
24 |
25 | - (NSString *)nodeSubtitle
26 | {
27 | return [NSString stringWithFormat:@"Confirmed %@", self.dateString];
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/MKBuys.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuys.m
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuys.h"
10 | #import "MKBuy.h"
11 |
12 | @implementation MKBuys
13 |
14 | - (id)init
15 | {
16 | self = [super init];
17 | self.nodeChildClass = MKBuy.class;
18 | // [self read];
19 | return self;
20 | }
21 |
22 | - (NSString *)nodeTitle
23 | {
24 | return @"Buys";
25 | }
26 |
27 | - (MKBuy *)addBuy
28 | {
29 | MKBuy *buy = [super addChild];
30 | [self write];
31 | return buy;
32 | }
33 |
34 | - (void)delete
35 | {
36 | return;
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/dist/generate_xml.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | FEED_TITLE="title"
4 | LINK="http://voluntary.net/bitpostcast.xml"
5 | FEED_DESCRIPTION="Bitmarkets Changelog"
6 | VERSION="1.0"
7 | DESCRIPTION="list of items"
8 | PUB_DATE=$(date -u)
9 | URL="http://link.to.app/Bitmarkets.zip"
10 | FILENAME="./Bitmarkets.zip"
11 | LENGTH=$(stat -f%z "$FILENAME")
12 | DSA_SIGNATURE=$(dist/sign_update.sh $FILENAME dist/keys/dsa_priv.pem)
13 |
14 | sed -e "s;%FEED_TITLE%;$FEED_TITLE;g" -e "s;%LINK%;$LINK;g" -e "s;%FEED_DESCRIPTION%;$FEED_DESCRIPTION;g" -e "s;%VERSION%;$VERSION;g" -e "s;%DESCRIPTION%;$DESCRIPTION;g" -e "s;%PUB_DATE%;$PUB_DATE;g" -e "s;%URL%;$URL;g" -e "s;%LENGTH%;$LENGTH;g" -e "s;%DSA_SIGNATURE%;$DSA_SIGNATURE;g" dist/template.xml
15 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Headers/Sparkle.h:
--------------------------------------------------------------------------------
1 | //
2 | // Sparkle.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07)
6 | // Copyright 2006 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SPARKLE_H
10 | #define SPARKLE_H
11 |
12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless
13 | // there are name-space collisions) so we can list all of them to start with:
14 |
15 | #import
16 |
17 | #import
18 | #import
19 | #import
20 | #import
21 |
22 | #endif
23 |
--------------------------------------------------------------------------------
/dist/template.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %FEED_TITLE%
5 | %LINK%
6 | %FEED_DESCRIPTION%
7 | en
8 | -
9 | toVersion %VERSION%
10 |
11 |
14 |
15 | %PUB_DATE%
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUVersionDisplayProtocol.h
3 | // EyeTV
4 | //
5 | // Created by Uli Kusterer on 08.12.09.
6 | // Copyright 2009 Elgato Systems GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | /*!
13 | Applies special display formatting to version numbers.
14 | */
15 | @protocol SUVersionDisplay
16 |
17 | /*!
18 | Formats two version strings.
19 |
20 | Both versions are provided so that important distinguishing information
21 | can be displayed while also leaving out unnecessary/confusing parts.
22 | */
23 | - (void)formatVersion:(NSString **)inOutVersionA andVersion:(NSString **)inOutVersionB;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKRootNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKRootNode.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 4/15/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 | #import
13 |
14 | #import "MKMarkets.h"
15 | #import "MKSells.h"
16 | #import "MKBuys.h"
17 |
18 | @interface MKRootNode : NavInfoNode
19 |
20 | @property (strong, nonatomic) BMClient *bmClient;
21 | @property (strong, nonatomic) MKMarkets *markets;
22 | @property (strong, nonatomic) BNWallet *wallet;
23 |
24 | + (MKRootNode *)sharedMKRootNode;
25 | - (BMIdentity *)bitmarketsUserIdentity;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/CHANGELOG:
--------------------------------------------------------------------------------
1 | version 0.8.7.15 (Dec 10, 2014)
2 | - added Global region
3 | - fix for post layout bug
4 | - initial work on app updates via subscription
5 |
6 | version 0.8.7.14
7 | - automatic periodic reposting until a bid is accepted
8 | - window size now remembered and min window size fix
9 | - added a test category folder
10 | - seller can only post if they have sufficient funds for escrow
11 | - increased minimum price for posts
12 | - added a simple channel syncing indicator
13 | - fix for wallet balance formatting
14 | - changed "0 confirms" to "Unconfirmed" string in UI
15 | - use ... on long post names for nodeTitle
16 | - withdraw network warning
17 | - fix button overlap bug
18 | - use lower limit when posting to Tests
19 | - fixed issue with sending bid to self
20 |
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKStatusView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKStatusView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/12/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKNodeView.h"
11 |
12 | @interface MKStatusView : MKNodeView
13 |
14 | @property (strong, nonatomic) NavColoredView *buttonsView;
15 | @property (strong, nonatomic) NavTextView *statusTextView;
16 | @property (strong, nonatomic) NavTextView *subtitleTextView;
17 | @property (strong, nonatomic) NSString *title;
18 |
19 | @property (assign, nonatomic) SEL titleSelector;
20 | @property (assign, nonatomic) SEL subtitleSelector;
21 |
22 |
23 | - (NSDictionary *)nodeTitleAttributes;
24 | - (void)setupButtons;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "submodules/BitmessageKit"]
2 | path = submodules/BitmessageKit
3 | url = git@github.com:Voluntarynet/BitmessageKit.git
4 | branch = master
5 | [submodule "submodules/FoundationCategoriesKit"]
6 | path = submodules/FoundationCategoriesKit
7 | url = git@github.com:Voluntarynet/FoundationCategoriesKit.git
8 | branch = master
9 | [submodule "submodules/NavKit"]
10 | path = submodules/NavKit
11 | url = git@github.com:Voluntarynet/NavKit.git
12 | branch = master
13 | [submodule "submodules/NavNodeKit"]
14 | path = submodules/NavNodeKit
15 | url = git@github.com:Voluntarynet/NavNodeKit.git
16 | branch = master
17 | [submodule "submodules/BitnashKit"]
18 | path = submodules/BitnashKit
19 | url = git@github.com:Voluntarynet/BitnashKit.git
20 | branch = master
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Groups/MKMsgGroup.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKMsgGroup.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/19/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMsgGroup.h"
10 | #import "MKMsg.h"
11 |
12 | @implementation MKMsgGroup
13 |
14 | - (BOOL)handleMsg:(MKMsg *)mkMsg // put in parent class of Buys and Sells
15 | {
16 | for (MKMsgGroup *child in self.children)
17 | {
18 | if ([child respondsToSelector:@selector(handleMsg:)])
19 | {
20 | BOOL didHandle = [child handleMsg:mkMsg];
21 |
22 | if (didHandle)
23 | {
24 | return YES;
25 | }
26 | }
27 | }
28 |
29 | return NO;
30 | }
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Helpers/MKExchangeRate.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKExchangeRate.h
3 | // BitMarkets
4 | //
5 | // Created by Adam Thorsen on 4/27/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MKExchangeRate : NSObject
12 |
13 | @property (strong, nonatomic) NSURLConnection *connection;
14 | @property (strong, nonatomic) NSMutableData *responseData;
15 | @property (strong, nonatomic) NSMutableDictionary *rates;
16 | @property (strong, nonatomic) NSTimer *repeatingTimer;
17 |
18 | - (NSNumber *)btcPerSymbol:(NSString *)symbol;
19 | - (void)startRepeatingTimer;
20 | - (void)update;
21 |
22 | + (MKExchangeRate *)shared;
23 |
24 | //- (NSString *)formattedPriceForSymbol:(NSString *)aSymbol;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/commit.sh:
--------------------------------------------------------------------------------
1 | cd submodules
2 |
3 |
4 | cd BitnashKit
5 | pwd
6 | git add .
7 | git commit . -s
8 | cd ..
9 |
10 |
11 | cd BitmessageKit
12 | cd submodules
13 |
14 |
15 | cd FoundationCategoriesKit
16 | pwd
17 | git add .
18 | git commit . -s
19 | cd ..
20 |
21 | cd NavKit
22 | pwd
23 | git add .
24 | git commit . -s
25 | cd ..
26 |
27 | cd NavNodeKit
28 | pwd
29 | git add .
30 | git commit . -s
31 | cd ..
32 |
33 | cd SystemInfoKit
34 | pwd
35 | git add .
36 | git commit . -s
37 | cd ..
38 |
39 | cd TorServerKit
40 | cd submodules/SystemInfoKit
41 | pwd
42 | git add .
43 | git commit . -s
44 | cd ../..
45 |
46 | pwd
47 | git add .
48 | git commit . -s
49 |
50 | cd ../../../BitmessageKit
51 | pwd
52 | git add .
53 | git commit . -s
54 |
55 | cd ../..
56 | pwd
57 | git add .
58 | git commit . -s
59 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKUpdatesSubscription.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKUpdatesSubscription.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 | // This object reads messages from the bitmarkets channel,
9 | // creates objects for each as a child to the appropriate
10 | // MKCategory
11 | //
12 |
13 | #import
14 | #import
15 |
16 | @interface MKUpdatesSubscription : NavNode
17 |
18 | @property (strong, nonatomic) NSString *updatesAddress;
19 | @property (strong, nonatomic) BMSubscription *subscription;
20 |
21 | @property (assign) BOOL needsToFetch;
22 |
23 | @property (strong, nonatomic) NSMutableDictionary *shownMessages;
24 |
25 | - (void)fetch;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Delivery/MKSellDeliveryAddress.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellDeliveryAddress.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/11/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellDeliveryAddress.h"
10 |
11 | @implementation MKSellDeliveryAddress
12 |
13 | - (id)init
14 | {
15 | self = [super init];
16 | self.isEditable = NO;
17 | self.nodeViewClass = NavMirrorView.class;
18 | return self;
19 | }
20 |
21 | - (NSString *)nodeTitle
22 | {
23 | return @"Buyer's Address";
24 | }
25 |
26 | - (NSString *)nodeSubtitle
27 | {
28 | if (self.isFilled)
29 | {
30 | return @"received ";
31 | }
32 |
33 | return @"awaiting from buyer";
34 | }
35 |
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/BitMarketsTests/BitMarketsTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // BitMarketsTests.m
3 | // BitMarketsTests
4 | //
5 | // Created by Steve Dekorte on 4/15/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface BitMarketsTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation BitMarketsTests
16 |
17 | - (void)setUp
18 | {
19 | [super setUp];
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 | }
22 |
23 | - (void)tearDown
24 | {
25 | // Put teardown code here. This method is called after the invocation of each test method in the class.
26 | [super tearDown];
27 | }
28 |
29 | - (void)testExample
30 | {
31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKAttachmentView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKAttachmentView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/20/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "MKDragFileWell.h"
12 |
13 | @protocol MKAttachmentViewProtocol
14 | - (void)changedAttachment:sender;
15 | @end
16 |
17 | @interface MKAttachmentView : NavColoredView
18 |
19 | @property (assign, nonatomic) id delegate;
20 |
21 | @property (strong, nonatomic) MKDragFileWell *dragWell;
22 | @property (strong, nonatomic) NavTextView *instructions;
23 | @property (strong, nonatomic) NSButton *closeButton;
24 | @property (assign, nonatomic) BOOL editable;
25 |
26 | - (void)setImage:(NSImage *)image;
27 | - (NSImage *)image;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKTransaction.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKTransaction.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/3/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKMessages.h"
11 | #import "MKMsgGroup.h"
12 | #import "MKPost.h"
13 |
14 | @class BNTx;
15 |
16 | @interface MKTransaction : MKMsgGroup
17 |
18 | @property (strong, nonatomic) MKPost *mkPost;
19 | @property (strong, nonatomic) NSString *error;
20 |
21 | - (NSArray *)visibleStages;
22 | - (MKStage *)currentStage;
23 | - (NSArray *)stages;
24 |
25 |
26 | - (NSString *)statusTitle;
27 | - (NSString *)nodeSubtitleDetailed;
28 |
29 | - (void)update;
30 |
31 | - (BOOL)isBuy;
32 | - (NSString *)description;
33 |
34 |
35 | - (BOOL)canDelete;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Headers/SUAppcast.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUAppcast.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 3/12/06.
6 | // Copyright 2006 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUAPPCAST_H
10 | #define SUAPPCAST_H
11 |
12 | @protocol SUAppcastDelegate;
13 |
14 | @class SUAppcastItem;
15 | @interface SUAppcast : NSObject
16 |
17 | @property (weak) id delegate;
18 | @property (copy) NSString *userAgentString;
19 |
20 | - (void)fetchAppcastFromURL:(NSURL *)url;
21 |
22 | @property (readonly, copy) NSArray *items;
23 | @end
24 |
25 | @protocol SUAppcastDelegate
26 | - (void)appcastDidFinishLoading:(SUAppcast *)appcast;
27 | - (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error;
28 | @end
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKMarketChannel.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMarketChannel.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 | // This object reads messages from the bitmarkets channel,
9 | // creates objects for each as a child to the appropriate
10 | // MKCategory
11 | //
12 |
13 | #import
14 | #import
15 |
16 | @interface MKMarketChannel : NavNode
17 |
18 | @property (strong, nonatomic) NSString *passphrase;
19 | @property (strong, nonatomic) BMChannel *channel;
20 |
21 | @property (assign, nonatomic) BOOL needsToFetchChannelMessages;
22 | //@property (assign, nonatomic) BOOL needsToFetchDirectMessages;
23 | @property (assign, nonatomic) long totalPostCount;
24 |
25 | - (void)fetch;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/BitMarketsTests/Bitmarkets.temp_caseinsensitive_renameTests-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.Bitmarkets.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundlePackageType
14 | BNDL
15 | CFBundleShortVersionString
16 | 1.0
17 | CFBundleSignature
18 | ????
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKCancelMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKCancelMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKCancelMsg.h"
10 | #import "MKLock.h"
11 |
12 | @implementation MKCancelMsg
13 |
14 | - (void)configureTx
15 | {
16 | if (self.lockNode.lockEscrowMsgToConfirm)
17 | {
18 | self.tx = self.lockNode.lockEscrowMsgToConfirm.tx.cancellationTx;
19 | [self.tx unlockInputs];
20 | [self.tx sign];
21 | }
22 | else
23 | {
24 | self.tx = nil;
25 | }
26 |
27 | }
28 |
29 | - (void)broadcast
30 | {
31 | if (self.tx)
32 | {
33 | self.payload = self.tx.asJSONObject;
34 | [self write];
35 | [self.tx broadcast];
36 | }
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKTxProgressView.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKTxProgressView.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/4/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "MKNodeView.h"
12 | #import "MKStepsView.h"
13 | #import "MKTransaction.h"
14 | #import "MKStatusView.h"
15 | #import "MKPostView.h"
16 |
17 | @interface MKTxProgressView : MKNodeView
18 |
19 | @property (assign, nonatomic) NavView *navView;
20 |
21 | @property (strong, nonatomic) MKStepsView *stepsView;
22 | @property (strong, nonatomic) MKStatusView *statusView;
23 | @property (strong, nonatomic) NavColoredView *bottomView;
24 | @property (strong, nonatomic) MKPostView *postView;
25 | @property (strong, nonatomic) NavColoredView *maskView; // overlays grey
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Delivery/MKBuyerAddressMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyerAddressMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuyerAddressMsg.h"
10 |
11 | @implementation MKBuyerAddressMsg
12 |
13 | - (NSString *)nodeTitle
14 | {
15 | if (self.isInBuy)
16 | {
17 | return @"Sent Address";
18 | }
19 |
20 | return @"Received Address";
21 | }
22 |
23 | - (BOOL)send
24 | {
25 | return [super sendToSeller];
26 | }
27 |
28 | - (NSDictionary *)addressDict
29 | {
30 | return self.payload;
31 | }
32 |
33 | - (void)setAddressDict:(NSDictionary *)aDict
34 | {
35 | [self setPayload:aDict];
36 | }
37 |
38 | - (id)descriptionJSONObject
39 | {
40 | return [super descriptionJSONObject];
41 | }
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUVersionComparisonProtocol.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 12/21/07.
6 | // Copyright 2007 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H
10 | #define SUVERSIONCOMPARISONPROTOCOL_H
11 |
12 | #import
13 |
14 | /*!
15 | Provides version comparison facilities for Sparkle.
16 | */
17 | @protocol SUVersionComparison
18 |
19 | /*!
20 | An abstract method to compare two version strings.
21 |
22 | Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a,
23 | and NSOrderedSame if they are equivalent.
24 | */
25 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; // *** MAY BE CALLED ON NON-MAIN THREAD!
26 |
27 | @end
28 |
29 | #endif
30 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/MKBuy.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuy.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/17/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKTransaction.h"
11 | #import "MKPost.h"
12 | #import "MKBuyBid.h"
13 | #import "MKBuyLockEscrow.h"
14 | #import "MKBuyDelivery.h"
15 | #import "MKBuyReleaseEscrow.h"
16 | #import "MKTxProgressView.h"
17 | #import "MKBuyComplete.h"
18 |
19 | @interface MKBuy : MKTransaction
20 |
21 | @property (strong, nonatomic) MKBuyBid *bid;
22 | @property (strong, nonatomic) MKBuyLockEscrow *lockEscrow;
23 | @property (strong, nonatomic) MKBuyDelivery *delivery;
24 | @property (strong, nonatomic) MKBuyReleaseEscrow *releaseEscrow;
25 | @property (strong, nonatomic) MKBuyComplete *complete;
26 |
27 | - (MKBidMsg *)bidMsg;
28 | - (BOOL)isCanceled;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/MKSells.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSells.m
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKSells.h"
11 | #import "MKSell.h"
12 | #import "MKMsg.h"
13 |
14 | @implementation MKSells
15 |
16 | - (id)init
17 | {
18 | self = [super init];
19 | self.nodeChildClass = MKSell.class;
20 | return self;
21 | }
22 |
23 | - (NSString *)nodeTitle
24 | {
25 | return @"Sells";
26 | }
27 |
28 | - (MKSell *)addSell
29 | {
30 | MKSell *sell = [super addChild];
31 | [self write];
32 | return sell;
33 | }
34 |
35 | // test
36 |
37 | - (void)write
38 | {
39 | [super write];
40 | }
41 |
42 | - (void)read
43 | {
44 | [super read];
45 | }
46 |
47 | - (void)delete
48 | {
49 | return;
50 | }
51 |
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/checkout.sh:
--------------------------------------------------------------------------------
1 | cd submodules
2 |
3 |
4 | cd BitnashKit
5 | pwd
6 | git checkout master
7 | git push origin master
8 | cd ..
9 |
10 |
11 | cd BitmessageKit
12 | cd submodules
13 |
14 |
15 | cd FoundationCategoriesKit
16 | pwd
17 | git checkout master
18 | git push origin master
19 | cd ..
20 |
21 | cd NavKit
22 | pwd
23 | git checkout master
24 | git push origin master
25 | cd ..
26 |
27 | cd NavNodeKit
28 | pwd
29 | git checkout master
30 | git push origin master
31 | cd ..
32 |
33 | cd SystemInfoKit
34 | pwd
35 | git checkout master
36 | git push origin master
37 | cd ..
38 |
39 | cd TorServerKit
40 | cd submodules/SystemInfoKit
41 | pwd
42 | git checkout master
43 | git push origin master
44 | cd ..
45 |
46 | cd ../../../TorServerKit
47 | pwd
48 | git checkout master
49 | git push origin master
50 |
51 | cd ../../../BitmessageKit
52 | pwd
53 | git checkout master
54 | git push origin master
55 |
56 | cd ../../../Bitmarkets
57 | pwd
58 | git checkout master
59 | git push origin master
60 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKEscrow.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKEscrow.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKEscrow.h"
10 | #import "MKBuy.h"
11 | #import "MKSell.h"
12 |
13 | @implementation MKEscrow
14 |
15 | // buy
16 |
17 | - (MKBuy *)buy
18 | {
19 | MKBuy *buy = (MKBuy *)[self firstInParentChainOfClass:MKBuy.class];
20 | assert(buy != nil);
21 | return buy;
22 | }
23 |
24 | - (BOOL)isBuy
25 | {
26 | return self.buy != nil;
27 | }
28 |
29 | // sell
30 |
31 | - (MKSell *)sell
32 | {
33 | MKSell *sell = (MKSell *)[self firstInParentChainOfClass:MKSell.class];
34 | assert(sell != nil);
35 | return sell;
36 | }
37 |
38 | - (BOOL)isSell
39 | {
40 | return self.sell != nil;
41 | }
42 |
43 |
44 | - (BOOL)isCancelConfirmed
45 | {
46 | [NSException raise:@"MKEscrow subclasses should override isCancelled method" format:@""];
47 | return NO;
48 | }
49 |
50 |
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/MKSell.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKSell.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/21/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKTransaction.h"
11 | #import "MKPost.h"
12 | #import "MKSellBids.h"
13 | #import "MKSellLockEscrow.h"
14 | #import "MKSellDelivery.h"
15 | #import "MKSellReleaseEscrow.h"
16 | #import "MKSellBid.h"
17 | #import "MKSellComplete.h"
18 |
19 | @class MKSells;
20 |
21 | @interface MKSell : MKTransaction
22 |
23 | //@property (strong, nonatomic) MKPost *mkPost;
24 | @property (strong, nonatomic) MKSellBids *bids;
25 | @property (strong, nonatomic) MKSellLockEscrow *lockEscrow;
26 | @property (strong, nonatomic) MKSellDelivery *delivery;
27 | @property (strong, nonatomic) MKSellReleaseEscrow *releaseEscrow;
28 | @property (strong, nonatomic) MKSellComplete *complete;
29 |
30 | - (MKBidMsg *)acceptedBidMsg;
31 |
32 | - (BOOL)isCanceled;
33 |
34 | - (MKSells *)sells;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKTxMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKEscrowMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/7/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTxMsg.h"
10 | #import "MKBuyLockEscrow.h"
11 | #import
12 |
13 | @implementation MKTxMsg
14 |
15 | @synthesize tx = _tx;
16 |
17 | - (BNTx *)tx
18 | {
19 | if (!_tx && self.payload && self.runningWallet)
20 | {
21 | self.tx = (BNTx *)[self.payload asObjectFromJSONObject];
22 | self.tx.wallet = self.runningWallet;
23 | }
24 |
25 | return _tx;
26 | }
27 |
28 | - (void)setTx:(BNTx *)tx
29 | {
30 | _tx = tx;
31 | }
32 |
33 |
34 | - (BOOL)isTxConfirmed
35 | {
36 | if (self.tx)
37 | {
38 | [self.tx refresh];
39 | return self.tx.isConfirmed;
40 | }
41 | else
42 | {
43 | return NO;
44 | }
45 | }
46 |
47 | - (void)configureTx
48 | {
49 | [NSException raise:@"Subclasses should override" format:@""];
50 | }
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKStage.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKStep.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKTransaction.h"
11 | #import
12 |
13 | @implementation MKStage
14 |
15 | - (BOOL)isActive
16 | {
17 | [NSException raise:@"subclasses must override" format:@""];
18 | return YES;
19 | }
20 |
21 | - (BOOL)isComplete
22 | {
23 | [NSException raise:@"subclasses must override" format:@""];
24 | return NO;
25 | }
26 |
27 | - (MKTransaction *)transaction
28 | {
29 | return (MKTransaction *)self.nodeParent;
30 | }
31 |
32 | - (MKStage *)nextStage
33 | {
34 | return [self.transaction.stages objectAfter:self];
35 | }
36 |
37 | - (MKStage *)previousStage
38 | {
39 | return [self.transaction.stages objectBefore:self];
40 | }
41 |
42 | - (BOOL)canDelete
43 | {
44 | return YES;
45 | }
46 |
47 | - (BOOL)prepareToDelete
48 | {
49 | return YES;
50 | }
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKMarkets.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMarkets.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "MKMarketChannel.h"
12 | #import "MKDirectMessages.h"
13 | #import "MKUpdatesSubscription.h"
14 |
15 | #import "MKRegion.h"
16 | #import "MKCategory.h"
17 |
18 | #import "MKBuys.h"
19 | #import "MKBuy.h"
20 |
21 | #import "MKSells.h"
22 | #import "MKSell.h"
23 |
24 | @interface MKMarkets : NavInfoNode
25 |
26 | @property (strong, nonatomic) MKRegion *rootRegion;
27 |
28 | //@property (strong, nonatomic) MKCategory *rootCategory;
29 | @property (strong, nonatomic) MKMarketChannel *mkChannel;
30 | @property (strong, nonatomic) MKDirectMessages *mkDirectMessages;
31 | @property (strong, nonatomic) MKUpdatesSubscription *mkUpdatesSubscription;
32 |
33 | @property (strong, nonatomic) MKBuys *buys;
34 | @property (strong, nonatomic) MKSells *sells;
35 |
36 |
37 | - (void)read;
38 | - (void)write;
39 | - (BOOL)handleMsg:(MKMsg *)mkMsg;
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUStandardVersionComparator.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 12/21/07.
6 | // Copyright 2007 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUSTANDARDVERSIONCOMPARATOR_H
10 | #define SUSTANDARDVERSIONCOMPARATOR_H
11 |
12 |
13 | #import "SUVersionComparisonProtocol.h"
14 |
15 | /*!
16 | Sparkle's default version comparator.
17 |
18 | This comparator is adapted from MacPAD, by Kevin Ballard.
19 | It's "dumb" in that it does essentially string comparison,
20 | in components split by character type.
21 | */
22 | @interface SUStandardVersionComparator : NSObject
23 |
24 | /*!
25 | Returns a singleton instance of the comparator.
26 | */
27 | + (SUStandardVersionComparator *)defaultComparator;
28 |
29 | /*!
30 | Compares version strings through textual analysis.
31 |
32 | See the implementation for more details.
33 | */
34 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB;
35 | @end
36 |
37 | #endif
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Voluntary.net
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Groups/MKGroup.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKGroup.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/24/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 |
13 | //@class MKMsg;
14 |
15 | @interface MKGroup : NavInfoNode
16 |
17 | @property (strong, nonatomic) NSString *name;
18 | @property (strong, nonatomic) JSONDB *db;
19 | @property (strong, nonatomic) NSMutableArray *dictPropertyNames;
20 | //@property (assign, nonatomic) NSInteger count;
21 |
22 | + (MKGroup *)rootInstance;
23 |
24 | - (void)setDict:(NSDictionary *)dict;
25 | - (NSDictionary *)dict;
26 |
27 | - (void)setPropertiesDict:(NSDictionary *)dict;
28 | - (NSDictionary *)propertiesDict;
29 |
30 | - (void)addPropertyName:(NSString *)aName;
31 |
32 |
33 | - (void)read;
34 | - (void)write;
35 |
36 | - (NSArray *)groupSubpaths;
37 | - (NSArray *)groupNamePath;
38 |
39 | - (void)updateCounts;
40 | - (NSInteger)countOfLeafChildren;
41 |
42 | - (BNWallet *)runningWallet;
43 |
44 | //- (BOOL)handleMsg:(MKMsg *)mkMsg;
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKDeliveryAddress.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKDeliveryAddress.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/7/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKGroup.h"
10 | #import "MKBuyerAddressMsg.h"
11 |
12 | @interface MKDeliveryAddress : MKGroup
13 |
14 | @property (strong, nonatomic) NSMutableDictionary *addressDict;
15 | @property (assign, nonatomic) BOOL isEditable;
16 |
17 | /*
18 | @property (strong, nonatomic) NSString *addressee;
19 | @property (strong, nonatomic) NSString *address1;
20 | @property (strong, nonatomic) NSString *address2;
21 | @property (strong, nonatomic) NSString *country;
22 | */
23 |
24 | /*
25 | // name
26 |
27 | - (void)setAddressee:(NSString *)aString;
28 | - (NSString *)addressee;
29 |
30 | // address1
31 |
32 | - (void)setAddress1:(NSString *)aString;
33 | - (NSString *)address1;
34 |
35 | // address2
36 |
37 | - (void)setAddress2:(NSString *)aString;
38 | - (NSString *)address2;
39 |
40 | // country
41 |
42 | - (void)setCountry:(NSString *)aString;
43 | - (NSString *)country;
44 | */
45 | // checks
46 |
47 | - (BOOL)isFilled;
48 | - (BOOL)canSend;
49 |
50 | @end
51 |
--------------------------------------------------------------------------------
/BitMarkets/resources/licenses/bitmessage/COPYING.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2012-2014 Jonathan Warren
2 | Copyright (c) 2013-2014 The Bitmessage Developers
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the "Software"), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in
12 | all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKDragFileWell.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @protocol MKDragFileWellProtocol
4 | - (void)droppedInWell:sender;
5 | - (BOOL)acceptsDrop:sender;
6 | @end
7 |
8 | @interface MKDragFileWell : NSImageView
9 |
10 | @property (strong, nonatomic) NSArray *filePaths;
11 | @property (assign, nonatomic) id delegate;
12 | @property (assign, nonatomic) BOOL canDrag;
13 | @property (assign, nonatomic) BOOL canDrop;
14 | @property (assign, nonatomic) NSUInteger resizeImageUntilLessThanKb;
15 |
16 | - (void)filePaths:(NSArray *)array;
17 | - (NSArray *)filePaths;
18 |
19 | - (void)setImage:(NSImage *)image;
20 | //- (NSImage *)image;
21 |
22 | // -- dragging destination
23 |
24 | - (NSDragOperation)draggingSession:(NSDraggingSession *)session
25 | sourceOperationMaskForDraggingContext:(NSDraggingContext)context;
26 |
27 | - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal;
28 | - (unsigned int)draggingEntered:(id )sender;
29 | - (BOOL)draggingUpdated:(id )sender;
30 | - (void)draggingExited:(id )sender;
31 | - (BOOL)performDragOperation:(id )sender;
32 |
33 | // delegate methods -- dragging source
34 |
35 | - (void)copy:sender;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/BitMarkets/resources/licenses/xmlrpc/LICENSE.txt:
--------------------------------------------------------------------------------
1 | # License
2 |
3 | ## The Cocoa XML-RPC Framework is distributed under the MIT License:
4 |
5 | Copyright (c) 2012 Eric Czarny
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of
8 | this software and associated documentation files (the "Software"), to deal in
9 | the Software without restriction, including without limitation the rights to
10 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
11 | of the Software, and to permit persons to whom the Software is furnished to do
12 | so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 | SOFTWARE.
24 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Bid/MKBidMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBidMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MKBidMsg.h"
11 | #import "MKRootNode.h"
12 |
13 | @implementation MKBidMsg
14 |
15 | - (NSString *)nodeTitle
16 | {
17 | if (self.isInBuy)
18 | {
19 | return @"Bid Sent";
20 | }
21 |
22 | return [NSString stringWithFormat:@"Bid received from %@", self.sellerAddress];
23 |
24 | //return @"Bid Received";
25 | }
26 |
27 | - (NSString *)nodeSubtitle
28 | {
29 | return self.dateString;
30 |
31 | /*
32 | if (self.isInBuy)
33 | {
34 | return self.dateString;
35 | }
36 |
37 | return [NSString stringWithFormat:@"From %@", self.sellerAddress];
38 | */
39 | }
40 |
41 | - (void)setupForPost:(MKPost *)mkPost
42 | {
43 | //[self.dict addEntriesFromDictionary:mkPost.propertiesDict];
44 |
45 | self.postUuid = mkPost.postUuid;
46 | self.sellerAddress = mkPost.sellerAddress;
47 | self.buyerAddress = self.myAddress;
48 | }
49 |
50 | - (BOOL)send
51 | {
52 | self.debug = YES;
53 | return [self sendToSeller];
54 | }
55 |
56 |
57 | @end
58 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 13E28
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleExecutable
10 | Sparkle
11 | CFBundleIdentifier
12 | org.andymatuschak.Sparkle
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | Sparkle
17 | CFBundlePackageType
18 | FMWK
19 | CFBundleShortVersionString
20 | 1.7.1 git
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 9516d6d
25 | DTCompiler
26 | com.apple.compilers.llvm.clang.1_0
27 | DTPlatformBuild
28 | 5B1008
29 | DTPlatformVersion
30 | GM
31 | DTSDKBuild
32 | 13C64
33 | DTSDKName
34 | macosx10.9
35 | DTXcode
36 | 0511
37 | DTXcodeBuild
38 | 5B1008
39 |
40 |
41 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Buys/Stages/Complete/MKBuyComplete.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKBuyComplete.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKBuyComplete.h"
10 | #import "MKBuy.h"
11 |
12 | @implementation MKBuyComplete
13 |
14 | - (id)init
15 | {
16 | self = [super init];
17 |
18 | return self;
19 | }
20 |
21 | // node
22 |
23 | - (NSNumber *)nodeSuggestedWidth
24 | {
25 | return @300;
26 | }
27 |
28 | - (NSString *)nodeTitle
29 | {
30 | return @"Complete";
31 | }
32 |
33 | - (MKBuy *)buy
34 | {
35 | return (MKBuy *)self.nodeParent;
36 | }
37 |
38 | - (NSString *)nodeSubtitle
39 | {
40 | /*
41 | if (self.buy.releaseEscrow.wasPaid)
42 | {
43 | return @"Complete! Payment made to seller & deposit returned";
44 | }
45 |
46 | if (self.buy.releaseEscrow.wasRefunded)
47 | {
48 | return @"Complete! Payment refunded by seller & deposit returned";
49 | }
50 | */
51 |
52 | return self.buy.releaseEscrow.nodeSubtitle;
53 | }
54 |
55 | - (NSString *)nodeNote
56 | {
57 | if (self.isComplete)
58 | {
59 | return @"✓";
60 | }
61 |
62 | return nil;
63 | }
64 |
65 | - (BOOL)isActive
66 | {
67 | return NO;
68 | }
69 |
70 | - (BOOL)isComplete
71 | {
72 | return self.buy.releaseEscrow.isComplete;
73 | }
74 |
75 | @end
76 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Complete/MKSellComplete.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSellDelivery.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/6/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSellComplete.h"
10 | #import "MKSell.h"
11 | #import "MKSellReleaseEscrow.h"
12 |
13 | @implementation MKSellComplete
14 |
15 | - (id)init
16 | {
17 | self = [super init];
18 | return self;
19 | }
20 |
21 | - (MKSell *)sell
22 | {
23 | return (MKSell *)self.nodeParent;
24 | }
25 |
26 | - (NSString *)nodeTitle
27 | {
28 | return @"Complete";
29 | }
30 |
31 | - (BOOL)isActive
32 | {
33 | return NO;
34 | }
35 |
36 | - (BOOL)isComplete
37 | {
38 | return self.sell.releaseEscrow.isComplete;
39 | }
40 |
41 | - (NSString *)nodeSubtitle
42 | {
43 | /*
44 | if (self.sell.releaseEscrow.wasPaid)
45 | {
46 | return @"Complete! Payment & deposit refund is in your wallet";
47 | }
48 |
49 | if (self.sell.releaseEscrow.wasRefunded)
50 | {
51 | return @"Complete! Payment refunded to buyer & your deposit is returned";
52 | }
53 | */
54 |
55 | return self.sell.releaseEscrow.nodeSubtitle;
56 | }
57 |
58 | - (NSString *)nodeNote
59 | {
60 | if (self.isComplete)
61 | {
62 | return @"✓";
63 | }
64 |
65 | return nil;
66 | }
67 |
68 | - (void)update
69 | {
70 |
71 | }
72 |
73 | @end
74 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKLock.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKLock.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKEscrow.h"
10 | #import "MKPost.h"
11 |
12 | @class MKSell;
13 | @class MKBuy;
14 | @class MKBuyLockEscrowMsg;
15 | @class MKSellLockEscrowMsg;
16 | // messages
17 |
18 | #import "MKBidMsg.h"
19 | #import "MKSetupLockMsg.h"
20 | #import "MKConfirmLockEscrowMsg.h"
21 | #import "MKCancelMsg.h"
22 | #import "MKSellLockEscrowMsg.h"
23 |
24 |
25 | @interface MKLock : MKEscrow
26 |
27 | - (BOOL)isConfirmed;
28 |
29 | // messages
30 |
31 |
32 | // messages
33 |
34 | - (MKBidMsg *)bidMsg;
35 | - (MKSetupLockMsg *)setupLockMsg;
36 | - (MKBuyLockEscrowMsg *)buyLockEscrowMsg;
37 | - (MKSellLockEscrowMsg *)sellLockEscrowMsg;
38 | - (MKLockMsg *)lockEscrowMsgToConfirm;
39 | - (MKConfirmLockEscrowMsg *)confirmLockEscrowMsg;
40 | - (MKCancelMsg *)cancelMsg;
41 | - (void)postLock:(MKLockMsg *)msg;
42 | - (void)sendMsg:(MKMsg *)msg; //subclasses should override
43 |
44 |
45 | //state machine
46 | - (void)update;
47 |
48 | // lock cancel
49 |
50 | - (BOOL)canCancel;
51 |
52 | - (BOOL)isCancelling;
53 |
54 | - (BOOL)isCancelConfirmed;
55 | - (MKCancelConfirmed *)cancelConfirmedMsg;
56 |
57 | - (MKPost *)mkPost;
58 | - (NSNumber *)lockEscrowPriceInSatoshi;
59 |
60 | - (NSString *)txDescription;
61 | - (BOOL)isBuyer;
62 |
63 | @end
64 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKRelease.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKRelease.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKEscrow.h"
10 |
11 | @class MKSell;
12 | @class MKBuy;
13 |
14 | // payment
15 |
16 | #import "MKBuyPaymentMsg.h"
17 | #import "MKSellAcceptPaymentMsg.h"
18 |
19 | // refund
20 |
21 | #import "MKBuyRefundRequestMsg.h"
22 | #import "MKSellAcceptRefundRequestMsg.h"
23 | #import "MKSellRejectRefundRequestMsg.h"
24 |
25 | // confirm
26 |
27 | #import "MKConfirmRefundMsg.h"
28 | #import "MKConfirmPaymentMsg.h"
29 |
30 |
31 |
32 | @interface MKRelease : MKEscrow
33 |
34 |
35 | - (NSString *)shortStatus;
36 |
37 | // checks
38 |
39 | - (BOOL)wasPaid;
40 | - (BOOL)wasRefunded;
41 |
42 | // payment messages
43 |
44 | - (MKBuyPaymentMsg *)buyPaymentMsg;
45 | - (MKSellAcceptPaymentMsg *)sellAcceptPaymentMsg;
46 |
47 | // refund messages
48 |
49 | - (MKBuyRefundRequestMsg *)buyRequestRefundMsg;
50 | - (MKSellAcceptRefundRequestMsg *)sellAcceptRefundRequestMsg;
51 | - (MKSellRejectRefundRequestMsg *)sellRejectRefundRequestMsg;
52 |
53 | // confirm messages
54 |
55 | - (MKConfirmRefundMsg *)confirmRefundMsg;
56 | - (MKConfirmPaymentMsg *)confirmPaymentMsg;
57 |
58 | // confirm checks
59 |
60 | - (void)lookForConfirmsIfNeeded;
61 | - (void)lookForPaymentConfirmIfNeeded;
62 | - (void)lookForRefundConfirmIfNeeded;
63 |
64 | @end
65 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKUpdateMessage.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKUpdateMessage.m
3 | // Bitmarkets
4 | //
5 | // Created by Steve Dekorte on 12/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 | // example update message
9 |
10 | /*
11 |
12 | {
13 | "_type" : "UpdateMsg",
14 | "version" : "0.0",
15 | "url" : "https://voluntary.net.s3.amazonaws.com/Bitmarkets.0.0.zip",
16 | "message" : "lots of fixes",
17 | "hashSha256" : "...",
18 | "commitHash" : "...",
19 | }
20 |
21 | */
22 |
23 | #import "MKUpdateMessage.h"
24 |
25 | @implementation MKUpdateMessage
26 |
27 | - (NSString *)currentVersion
28 | {
29 | NSDictionary *info = [NSBundle bundleForClass:[self class]].infoDictionary;
30 | NSString *versionString = [info objectForKey:@"CFBundleVersion"];
31 | return versionString;
32 | }
33 |
34 | - (NSString *)version
35 | {
36 | return [self.dict objectForKey:@"version"];
37 | }
38 |
39 | - (NSComparisonResult)compare:(id)anObject
40 | {
41 | return [self.version versionCompare:[(MKUpdateMessage *)anObject version]];
42 | }
43 |
44 | - (BOOL)isNewer
45 | {
46 | return [self.version versionCompare:self.currentVersion] == NSOrderedDescending;
47 | }
48 |
49 | - (BOOL)isCurrentVersion
50 | {
51 | return [self.version versionCompare:self.currentVersion] == NSOrderedSame;
52 | }
53 |
54 | - (void)deleteIfOlder
55 | {
56 | if (!self.isNewer)
57 | {
58 | [self.bmMessage delete];
59 | }
60 | }
61 |
62 | - (void)showAlert
63 | {
64 |
65 | }
66 |
67 | @end
68 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKNodeView.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKNodeView.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/16/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKNodeView.h"
10 |
11 | @implementation MKNodeView
12 |
13 | - (id)initWithFrame:(NSRect)frame
14 | {
15 | self = [super initWithFrame:frame];
16 |
17 | if (self)
18 | {
19 | self.backgroundColor = [NSColor whiteColor];
20 | }
21 |
22 | return self;
23 | }
24 |
25 | - (void)dealloc
26 | {
27 | [NSNotificationCenter.defaultCenter removeObserver:self];
28 | }
29 |
30 | - (void)setFrame:(NSRect)frameRect
31 | {
32 | [super setFrame:frameRect];
33 | [self layout];
34 | }
35 |
36 | - (void)layout
37 | {
38 |
39 | }
40 |
41 | - (void)setNode:(NavNode *)node
42 | {
43 | if (_node != node)
44 | {
45 | [NSNotificationCenter.defaultCenter removeObserver:self name:nil object:_node];
46 | _node = node;
47 | if (_node)
48 | {
49 | [NSNotificationCenter.defaultCenter addObserver:self
50 | selector:@selector(nodeChanged:)
51 | name:nil
52 | object:_node];
53 | [self syncFromNode];
54 | }
55 | }
56 | }
57 |
58 | - (void)nodeChanged:(NSNotification *)aNote
59 | {
60 | [self syncFromNode];
61 | }
62 |
63 | - (void)syncFromNode
64 | {
65 |
66 | }
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/Notes/Escrow.txt:
--------------------------------------------------------------------------------
1 |
2 | Lock Escrow
3 |
4 | 1. MKBuyLockEscrow sendLockToSeller method
5 | - send buyer's utx inputs
6 |
7 | 2. MKSellLockEscrow sendLock method
8 | - add seller's utx input and signs
9 |
10 | 3. MKBuyLockEscrow postLockToBlockchain method
11 | - buyer sign tx and post
12 |
13 | 4. MKBuyLockEscrow lookForConfirm method
14 | - look for confirm in blockchain
15 | - addChild: MKConfirmLockEscrowMsg
16 |
17 | 5. MKSellLockEscrow lookForConfirm method
18 | - look for confirm in blockchain
19 | - addChild: MKConfirmLockEscrowMsg
20 |
21 |
22 |
23 |
24 | Release Escrow - buyer pays
25 |
26 | 1. MKBuyReleaseEscrow sendPayment method
27 | - send buyer's utxs inputs in MKBuyPaymentMsg
28 |
29 | 2. MKSellReleaseEscrow acceptPayment method (called when MKBuyPaymentMsg received)
30 | - add seller's utx input and signs
31 | - sends to buyer in MKSellAcceptPaymentMsg
32 |
33 | 3. MKBuyReleaseEscrow postPaymentToBlockchain
34 | - buyer sign tx and post
35 |
36 | [confirms work same as lock confirms?]
37 |
38 |
39 |
40 |
41 | Release Escrow - buyer requests refund
42 |
43 | 1. MKBuyReleaseEscrow requestRefund method
44 | - send buyer's utxs inputs in MKBuyRequestRefundMsg
45 |
46 | 2. MKSellReleaseEscrow acceptRefundRequest method (call via user input)
47 | - add seller's utx input and signs
48 | - sends to buyer in MKSellAcceptRefundMsg
49 |
50 | 3. MKBuyReleaseEscrow postPaymentToBlockchain
51 | - buyer sign tx and post
52 |
53 | [confirms work same as lock confirms?]
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // SUAppcastItem.h
3 | // Sparkle
4 | //
5 | // Created by Andy Matuschak on 3/12/06.
6 | // Copyright 2006 Andy Matuschak. All rights reserved.
7 | //
8 |
9 | #ifndef SUAPPCASTITEM_H
10 | #define SUAPPCASTITEM_H
11 |
12 | @interface SUAppcastItem : NSObject
13 | @property (copy, readonly) NSString *title;
14 | @property (copy, readonly) NSDate *date;
15 | @property (copy, readonly) NSString *itemDescription;
16 | @property (strong, readonly) NSURL *releaseNotesURL;
17 | @property (copy, readonly) NSString *DSASignature;
18 | @property (copy, readonly) NSString *minimumSystemVersion;
19 | @property (copy, readonly) NSString *maximumSystemVersion;
20 | @property (strong, readonly) NSURL *fileURL;
21 | @property (copy, readonly) NSString *versionString;
22 | @property (copy, readonly) NSString *displayVersionString;
23 | @property (copy, readonly) NSDictionary *deltaUpdates;
24 | @property (strong, readonly) NSURL *infoURL;
25 |
26 | // Initializes with data from a dictionary provided by the RSS class.
27 | - (instancetype)initWithDictionary:(NSDictionary *)dict;
28 | - (instancetype)initWithDictionary:(NSDictionary *)dict failureReason:(NSString **)error;
29 |
30 | @property (getter=isDeltaUpdate, readonly) BOOL deltaUpdate;
31 | @property (getter=isCriticalUpdate, readonly) BOOL criticalUpdate;
32 |
33 | // Returns the dictionary provided in initWithDictionary; this might be useful later for extensions.
34 | @property (readonly, copy) NSDictionary *propertiesDictionary;
35 |
36 | - (NSURL *)infoURL;
37 |
38 | @end
39 |
40 | #endif
41 |
--------------------------------------------------------------------------------
/BitMarkets/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "16x16",
5 | "idiom" : "mac",
6 | "filename" : "icon_16x16.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "16x16",
11 | "idiom" : "mac",
12 | "filename" : "icon_16x16@2x.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "32x32",
17 | "idiom" : "mac",
18 | "filename" : "icon_32x32.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "32x32",
23 | "idiom" : "mac",
24 | "filename" : "icon_32x32@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "128x128",
29 | "idiom" : "mac",
30 | "filename" : "icon_128x128.png",
31 | "scale" : "1x"
32 | },
33 | {
34 | "size" : "128x128",
35 | "idiom" : "mac",
36 | "filename" : "icon_128x128@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "256x256",
41 | "idiom" : "mac",
42 | "filename" : "icon_256x256.png",
43 | "scale" : "1x"
44 | },
45 | {
46 | "size" : "256x256",
47 | "idiom" : "mac",
48 | "filename" : "icon_256x256@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "512x512",
53 | "idiom" : "mac",
54 | "filename" : "icon_512x512.png",
55 | "scale" : "1x"
56 | },
57 | {
58 | "size" : "512x512",
59 | "idiom" : "mac",
60 | "filename" : "icon_515x512@2x.png",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKPanelManager.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKPanelManager.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/17/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKPanelManager.h"
10 | #import "MKPanelView.h"
11 |
12 | @implementation MKPanelManager
13 |
14 | static MKPanelManager *sharedPanelManager = nil;
15 |
16 | + (MKPanelManager *)sharedPanelManager
17 | {
18 | if (!sharedPanelManager)
19 | {
20 | sharedPanelManager = [[MKPanelManager alloc] init];
21 | }
22 |
23 | return sharedPanelManager;
24 | }
25 |
26 | - (void)setPanelReceiver:(NSView *)panelReceiver
27 | {
28 | _panelReceiver = panelReceiver;
29 | }
30 |
31 | - (MKPanelView *)receiverPanelView
32 | {
33 | if (_panelReceiver)
34 | {
35 | for (NSView *subview in _panelReceiver.subviews)
36 | {
37 | if ([subview isKindOfClass:MKPanelView.class])
38 | {
39 | return (MKPanelView *)subview;
40 | }
41 | }
42 | }
43 |
44 | return nil;
45 | }
46 |
47 | - (MKPanelView *)openNewPanel
48 | {
49 | if (_panelReceiver && !self.receiverPanelView)
50 | {
51 | MKPanelView *panelView = [[MKPanelView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
52 | [_panelReceiver addSubview:panelView];
53 | [panelView layout];
54 | return panelView;
55 | }
56 | else
57 | {
58 | NSString *error = @"no panel receiver";
59 | NSLog(@"%@ %@", self.className, error);
60 | [NSException raise:error format:@""];
61 | }
62 |
63 | return nil;
64 | }
65 |
66 | @end
67 |
--------------------------------------------------------------------------------
/Vendor/Sparkle/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 13E28
7 | CFBundleDevelopmentRegion
8 | English
9 | CFBundleExecutable
10 | Autoupdate
11 | CFBundleIconFile
12 | AppIcon
13 | CFBundleIdentifier
14 | org.sparkle-project.Sparkle.Autoupdate
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.7.1
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.7.1
25 | DTCompiler
26 | com.apple.compilers.llvm.clang.1_0
27 | DTPlatformBuild
28 | 5B1008
29 | DTPlatformVersion
30 | GM
31 | DTSDKBuild
32 | 13C64
33 | DTSDKName
34 | macosx10.9
35 | DTXcode
36 | 0511
37 | DTXcodeBuild
38 | 5B1008
39 | LSBackgroundOnly
40 | 1
41 | LSMinimumSystemVersion
42 | 10.7
43 | LSUIElement
44 | 1
45 | NSMainNibFile
46 | MainMenu
47 | NSPrincipalClass
48 | NSApplication
49 |
50 |
51 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Groups/MKRegion.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKRegion.m
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/24/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKRegion.h"
10 | #import "MKCategory.h"
11 |
12 | @implementation MKRegion
13 |
14 | - (id)init
15 | {
16 | self = [super init];
17 | self.nodeSuggestedWidth = @150;
18 | self.nodeShouldSortChildren = @YES;
19 | return self;
20 | }
21 |
22 | - (JSONDB *)db
23 | {
24 | JSONDB *db = [super db];
25 | db.name = @"regions.json";
26 | db.location = JSONDB_IN_APP_WRAPPER;
27 | return db;
28 | }
29 |
30 | - (void)setDict:(NSDictionary *)dict
31 | {
32 | [super setDict:dict];
33 |
34 | if (self.children.count == 0)
35 | {
36 | [self setChildren:[MKCategory rootInstance].children];
37 | }
38 | }
39 |
40 | // search
41 |
42 | - (BOOL)canSearch
43 | {
44 | NavNode *firstChild = [self.children firstObject];
45 |
46 | if (firstChild && [firstChild isKindOfClass:self.class])
47 | {
48 | return YES;
49 | }
50 |
51 | return NO;
52 | }
53 |
54 | - (BOOL)nodeMatchesSearch:(NSString *)aString
55 | {
56 | for (NSString *word in [self.nodeTitle componentsSeparatedByString:@" "])
57 | {
58 | if ([word hasPrefix:aString])
59 | {
60 | return YES;
61 | }
62 | }
63 |
64 | return NO;
65 | }
66 |
67 | /*
68 | - (BOOL)nodeMatchesSearch:(NSString *)aString
69 | {
70 | for (id child in self.children)
71 | {
72 | if ([child nodeMatchesSearch:aString])
73 | {
74 | return YES;
75 | }
76 | }
77 |
78 | return NO;
79 | }
80 | */
81 |
82 | @end
83 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKPasswordView.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKPasswordView.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 7/20/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKPasswordView.h"
10 |
11 | @implementation MKPasswordView
12 |
13 | - (id)initWithFrame:(NSRect)frame
14 | {
15 | self = [super initWithFrame:frame];
16 |
17 | if (self)
18 | {
19 | _info = [[NavTextView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
20 | [_info setThemePath:@"password/info"];
21 | [self addSubview:_info];
22 |
23 | _password = [[NSSecureTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
24 | [_password setThemePath:@"password/password"];
25 | [self addSubview:_password];
26 |
27 | _passwordConfirm = [[NSSecureTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
28 | [_passwordConfirm setThemePath:@"password/password"];
29 | [self addSubview:_passwordConfirm];
30 | }
31 |
32 | return self;
33 | }
34 |
35 | - (BOOL)hasPassword
36 | {
37 | return NO;
38 | }
39 |
40 | - (void)setup
41 | {
42 | [_passwordConfirm setHidden:self.hasPassword];
43 |
44 | if (!self.hasPassword)
45 | {
46 | [_info setString:@"Please choose a password"];
47 | [_passwordConfirm setHidden:NO];
48 | [self.window makeFirstResponder:_password];
49 | }
50 | else
51 | {
52 | [_passwordConfirm setHidden:YES];
53 | }
54 | }
55 |
56 | - (void)layout
57 | {
58 | [_password centerXInSuperview];
59 | [_password centerYInSuperview];
60 |
61 | [_info centerXInSuperview];
62 | [_info placeYAbove:_password margin:20];
63 |
64 | [_passwordConfirm placeYBelow:_password margin:20];
65 | }
66 |
67 | @end
68 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Post/MKPostMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKPostMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "MKPostMsg.h"
12 | #import "MKRootNode.h"
13 |
14 | @implementation MKPostMsg
15 |
16 | - (id)init
17 | {
18 | self = [super init];
19 |
20 | return self;
21 | }
22 |
23 | /*
24 | - (NSString *)nodeNote
25 | {
26 | return self.bmStatus;
27 | }
28 | */
29 |
30 | - (NSUInteger)hash
31 | {
32 | return self.postUuid.hash;
33 | }
34 |
35 | - (BOOL)isEqual:(MKPostMsg *)object
36 | {
37 | if (![object isKindOfClass:MKPostMsg.class])
38 | {
39 | return NO;
40 | }
41 |
42 | return [self.postUuid isEqualToString:object.postUuid];
43 | }
44 |
45 | - (void)sendPost:(MKPost *)mkPost
46 | {
47 | NSMutableDictionary *payload = [NSMutableDictionary dictionaryWithDictionary:mkPost.propertiesDict];
48 | [payload removeKeysNotInArray:mkPost.postMessagePropertyNames];
49 |
50 | self.sellerAddress = self.myAddress;
51 | self.buyerAddress = nil;
52 | self.postUuid = mkPost.postUuid;
53 |
54 | [self setPayload:payload];
55 | [self send];
56 | }
57 |
58 | - (BOOL)isValid
59 | {
60 | BOOL validUuid = self.hasValidPostUuid;
61 | BOOL validSeller = self.hasValidSellerAddress;
62 | return validUuid && validSeller;
63 | }
64 |
65 | - (BOOL)send
66 | {
67 | return [self sendFromSellerToChannel];
68 | }
69 |
70 | - (MKPost *)mkPost
71 | {
72 | MKPost *mkPost = [[MKPost alloc] init];
73 | [mkPost setPropertiesDict:self.payload];
74 | mkPost.bmMessage = self.bmMessage;
75 | return mkPost;
76 | }
77 |
78 | @end
79 |
--------------------------------------------------------------------------------
/BitMarkets/Bitmarkets.temp_caseinsensitive_rename-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ATSApplicationFontsPath
6 | fonts/Open_Sans
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIdentifier
14 | net.voluntary.${PRODUCT_NAME:rfc1034identifier}
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | ${PRODUCT_NAME}
19 | CFBundlePackageType
20 | APPL
21 | CFBundleShortVersionString
22 | 0.9.2
23 | CFBundleSignature
24 | ????
25 | CFBundleVersion
26 | 0.9.2
27 | LSApplicationCategoryType
28 | public.app-category.business
29 | LSMinimumSystemVersion
30 | ${MACOSX_DEPLOYMENT_TARGET}
31 | NSAppTransportSecurity
32 |
33 | NSAllowsArbitraryLoads
34 |
35 |
36 | NSHumanReadableCopyright
37 | Copyright © 2014 voluntary.net. All rights reserved.
38 | NSMainNibFile
39 | MainMenu
40 | NSPrincipalClass
41 | NSApplication
42 | SUAllowsAutomaticUpdates
43 |
44 | SUEnableAutomaticChecks
45 |
46 | SUFeedURL
47 | http://voluntary.net/bitmarkets/sparkle/feed.rss
48 | SUScheduledCheckInterval
49 | 86400
50 | SUShowReleaseNotes
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKPostView.h:
--------------------------------------------------------------------------------
1 | //
2 | // BMAddressedView.h
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 2/21/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "MKSell.h"
12 | #import "MKExchangeRate.h"
13 | #import "MKAttachmentView.h"
14 |
15 | @interface MKPostView : NSView
16 |
17 | @property (assign, nonatomic) NavView *navView;
18 | @property (assign, nonatomic) NavNode *node;
19 |
20 | // scrolling
21 |
22 | @property (strong, nonatomic) NavColoredView *documentView;
23 | @property (strong, nonatomic) NSScrollView *scrollView;
24 |
25 | // content
26 |
27 | @property (strong, nonatomic) NavAdvTextView *title;
28 | //@property (strong, nonatomic) IBOutlet NSTextView *quantity;
29 | @property (strong, nonatomic) NavAdvTextView *price;
30 | @property (strong, nonatomic) NavAdvTextView *errorText;
31 | @property (strong, nonatomic) NavRoundButtonView *postOrBuyButton;
32 |
33 | @property (strong, nonatomic) NavColoredView *separator;
34 |
35 | @property (strong, nonatomic) NavAdvTextView *postDescription;
36 |
37 | @property (strong, nonatomic) NSImageView *regionIcon;
38 | @property (strong, nonatomic) NSTextView *region;
39 |
40 | @property (strong, nonatomic) NSImageView *categoryIcon;
41 | @property (strong, nonatomic) NSTextView *category;
42 |
43 | @property (strong, nonatomic) NSImageView *fromAddressIcon;
44 | @property (strong, nonatomic) NSTextView *fromAddress;
45 |
46 | @property (strong, nonatomic) MKAttachmentView *attachmentView;
47 |
48 | @property (assign, nonatomic) BOOL isUpdating;
49 | @property (assign, nonatomic) BOOL editable;
50 |
51 | @property (strong, nonatomic) MKExchangeRate * exchangeRate;
52 |
53 | @property (assign, nonatomic) BOOL needsLocalLayout;
54 |
55 |
56 | + (CGFloat)leftMargin;
57 |
58 | - (MKSell *)sell;
59 |
60 | - (void)selectFirstResponder;
61 |
62 | - (void)setEditable:(BOOL)isEditable;
63 |
64 | @end
65 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKMsg.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKMsg.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/2/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKGroup.h"
10 | #import
11 |
12 | // message names
13 |
14 | @interface MKMsg : MKGroup
15 |
16 | @property (strong, nonatomic) NSString *postUuid;
17 | @property (strong, nonatomic) NSString *sellerAddress;
18 | @property (strong, nonatomic) NSString *buyerAddress;
19 | @property (strong, nonatomic) NSNumber *dateNumber;
20 |
21 | @property (strong, nonatomic) NSDictionary *payload;
22 |
23 | @property (strong, nonatomic) BMMessage *bmMessage;
24 | @property (strong, nonatomic) NSString *ackData;
25 | @property (assign, nonatomic) BOOL updatingStatus;
26 | @property (assign, nonatomic) BOOL debug;
27 |
28 | + (MKMsg *)withBMMessage:(BMMessage *)bmMessage;
29 |
30 | // checking sender
31 |
32 | - (BOOL)bmSenderIsBuyer; // only works when first received
33 | - (BOOL)bmSenderIsSeller; // only works when first received
34 |
35 | // --- valid ---
36 |
37 | - (BOOL)hasValidPostUuid;
38 | - (BOOL)hasValidSellerAddress;
39 | - (BOOL)isValid;
40 |
41 | - (NSString *)myAddress;
42 |
43 | - (NSString *)classNameSansPrefix;
44 |
45 | - (NSString *)subject;
46 |
47 | // date
48 |
49 | - (void)addDate;
50 | - (void)setDate:(NSDate *)aDate;
51 | - (NSDate *)date;
52 |
53 | - (NSString *)dateString;
54 |
55 | //status
56 |
57 | - (BOOL)wasSent;
58 |
59 | // --- setter / getters ---
60 |
61 | - (void)setPostUuid:(NSString *)postUuid;
62 | - (NSString *)postUuid;
63 |
64 | - (void)setSellerAddress:(NSString *)sellerAddress;
65 | - (NSString *)sellerAddress;
66 |
67 | - (void)setBuyerAddress:(NSString *)buyerAddress;
68 | - (NSString *)buyerAddress;
69 |
70 | // copy
71 |
72 | - (void)copyThreadFrom:(MKMsg *)msg;
73 |
74 | // send
75 |
76 | - (BOOL)send;
77 |
78 | - (BOOL)sendFromSellerToChannel;
79 | - (BOOL)sendToBuyer;
80 | - (BOOL)sendToSeller;
81 |
82 | - (BOOL)isInBuy;
83 | - (BOOL)isInSell;
84 |
85 | - (BMSentMessage *)sentMessage;
86 |
87 | // debugging
88 |
89 | - (id)descriptionJSONObject;
90 |
91 |
92 | @end
93 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/MKTransactions.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKTransactions.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/12/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTransactions.h"
10 |
11 | @implementation MKTransactions
12 |
13 | - (id)init
14 | {
15 | self = [super init];
16 | self.nodeShouldUseCountForNodeNote = @YES;
17 | self.nodeSuggestedWidth = @350;
18 | return self;
19 | }
20 |
21 | - (NSString *)nodeNote
22 | {
23 | if (self.children.count > 0)
24 | {
25 | return [NSString stringWithFormat:@"%i", (int)self.children.count];
26 | }
27 |
28 | return nil;
29 | }
30 |
31 | - (JSONDB *)db
32 | {
33 | JSONDB *db = [super db];
34 | db.name = NSStringFromClass(self.class);
35 | db.location = JSONDB_IN_APP_SUPPORT_FOLDER;
36 | return db;
37 | }
38 |
39 | - (void)write
40 | {
41 | [super write];
42 | }
43 |
44 | - (void)read
45 | {
46 | [super read];
47 | [self update];
48 | [self postParentChainChanged];
49 | }
50 |
51 | - (void)removeChild:(id)aChild
52 | {
53 | [super removeChild:aChild];
54 | [self write];
55 | }
56 |
57 | - (BOOL)canSearch
58 | {
59 | return self.children.count > 0;
60 | }
61 |
62 | /*
63 | - (NSString *)verifyActionMessage:(NSString *)aString
64 | {
65 | if ([aString isEqualToString:@"delete"])
66 | {
67 | return @"Are you sure you want to delete this? If the sale is in progress, you may loose your escrow.";
68 | }
69 |
70 | return nil;
71 | }
72 | */
73 |
74 | - (void)update
75 | {
76 | for (id child in self.children)
77 | {
78 | if ([child respondsToSelector:@selector(update)])
79 | {
80 | [child update];
81 | }
82 | }
83 |
84 | [self writeIfNeeded];
85 | }
86 |
87 | - (void)writeIfNeeded
88 | {
89 | if ([self isDirtyRecursive])
90 | {
91 | [self write];
92 | [self setCleanRecursive];
93 | }
94 | }
95 |
96 | - (void)notifyChainDirty
97 | {
98 | NSLog(@"%@ notifyChainDirty", NSStringFromClass(self.class));
99 | //[self write];
100 | }
101 |
102 |
103 | @end
104 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Sells/Stages/Post/MKPost.h:
--------------------------------------------------------------------------------
1 | //
2 | // MKPost.h
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 5/1/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStage.h"
10 | #import "MKPostMsg.h"
11 | #import "MKBidMsg.h"
12 | #import
13 |
14 | //@class MKPostMsg;
15 | //@class MKBidMsg;
16 |
17 | @interface MKPost : MKStage
18 |
19 | @property (strong, nonatomic) NSDate *date;
20 |
21 | // msg properties
22 |
23 | @property (strong, nonatomic) NSString *postUuid;
24 |
25 | @property (strong, nonatomic) NSString *title;
26 | @property (strong, nonatomic) NSNumber *priceInSatoshi;
27 | @property (strong, nonatomic) NSString *postDescription;
28 |
29 | @property (strong, nonatomic) NSArray *regionPath;
30 | @property (strong, nonatomic) NSArray *categoryPath;
31 | @property (strong, nonatomic) NSString *sellerAddress;
32 | @property (strong, nonatomic) NSArray *attachments;
33 | @property (strong, nonatomic) BMMessage *bmMessage; // used only for browsable listing, so we can delete msg when receiving a close request
34 | @property (strong, nonatomic) NSString *composeError;
35 |
36 | @property (strong, nonatomic) NSNumber *firstPostDateNumber;
37 | @property (strong, nonatomic) NSNumber *lastPostDateNumber;
38 |
39 |
40 | // --- repost & expire ---
41 |
42 | + (NSNumber *)repostPeriodInSeconds;
43 | + (NSNumber *)expirePeriodInSeconds;
44 | - (BOOL)needsExpire;
45 | - (BOOL)needsRepost;
46 | - (void)repostIfNeeded;
47 | - (void)expireIfNeeded;
48 |
49 | // ------------------------
50 |
51 | - (NSArray *)postMessagePropertyNames;
52 |
53 | - (BOOL)isEditable;
54 | - (BOOL)canBuy;
55 |
56 | - (void)setPriceInBtc:(NSNumber *)btcNumber;
57 | - (NSNumber *)priceInBtc;
58 | - (NSNumber *)minimumPriceInBtc;
59 | - (NSNumber *)minimumTestPriceInBtc;
60 | - (BOOL)hasPriceWithinMinMaxRange;
61 |
62 | - (BOOL)placeInMarketsPath;
63 | - (BOOL)isAlreadyInMarketsPath;
64 |
65 | - (void)copy:(MKPost *)aPost;
66 | - (NSString *)titleOrDefault;
67 |
68 | // messages
69 |
70 | - (MKPostMsg *)postMsg;
71 |
72 | - (MKPostMsg *)sendPostMsg;
73 | - (MKBidMsg *)sendBidMsg;
74 |
75 | - (BOOL)isComplete;
76 |
77 | // equality
78 |
79 | - (NSUInteger)hash;
80 | - (BOOL)isEqual:(id)object;
81 |
82 | - (NSNumber *)priceInSatoshi;
83 |
84 | - (void)close;
85 |
86 |
87 | @end
88 |
--------------------------------------------------------------------------------
/BitMarkets/resources/licenses/zipkit/COPYING.txt:
--------------------------------------------------------------------------------
1 | ZipKit is covered under the following BSD-style license:
2 | ================================================================
3 | Copyright (c) 2009, Karl Moskowski
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are
8 | met:
9 |
10 | * Redistributions of source code must retain the above copyright
11 | notice, this list of conditions and the following disclaimer.
12 | * Redistributions in binary form must reproduce the above
13 | copyright notice, this list of conditions and the following disclaimer
14 | in the documentation and/or other materials provided with the
15 | distribution.
16 | * Neither the name of Karl Moskowski nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 | ================================================================
32 |
33 | Acknowledgement using this text is appreciated:
34 | ZipKit developed by Karl Moskowski.
35 | https://github.com/kolpanic/ZipKit
36 |
37 | ------------------------------------------------------------------------------------------------
38 |
39 | The GMAppleDouble class used in this project is part of the MacFUSE project by Google Inc.
40 |
41 |
42 | See the file COPYING.TXT in the MacFUSE folder for license details.
43 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKStepsView.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKStepsView.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 6/10/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKStepsView.h"
10 | #import "MKStepView.h"
11 | #import "MKTransaction.h"
12 |
13 | @implementation MKStepsView
14 |
15 | - (id)initWithFrame:(NSRect)frame
16 | {
17 | self = [super initWithFrame:frame];
18 |
19 | if (self)
20 | {
21 | self.backgroundColor = [NSColor whiteColor];
22 | }
23 |
24 | return self;
25 | }
26 |
27 | - (MKTransaction *)transaction
28 | {
29 | return (MKTransaction *)self.node;
30 | }
31 |
32 | - (void)setNode:(NavNode *)node
33 | {
34 | [super setNode:node];
35 | [self setupViews];
36 | }
37 |
38 | - (void)syncFromNode
39 | {
40 | for (MKStepView *stepView in self.subviews)
41 | {
42 | [stepView syncFromNode];
43 | }
44 |
45 | // are the stages looking at the nextStage to see how to render?
46 | // if so, we might need to do a 2nd eval
47 |
48 | /*
49 | for (MKStepView *stepView in self.subviews)
50 | {
51 | [stepView syncFromNode];
52 | }
53 | */
54 | }
55 |
56 | - (void)setupViews
57 | {
58 | [self removeAllSubviews];
59 | MKStepView *stepView = nil;
60 |
61 | for (NavNode *subnode in self.transaction.visibleStages)
62 | {
63 | stepView = [[MKStepView alloc] initWithFrame:NSMakeRect(0, 0, 100, self.height)];
64 | [stepView setNode:subnode];
65 | [self addSubview:stepView];
66 | stepView.hasArrow = YES;
67 | }
68 |
69 | if (stepView)
70 | {
71 | stepView.hasArrow = NO;
72 | }
73 |
74 | [self layout];
75 | }
76 |
77 | - (void)layout
78 | {
79 | NSInteger count = self.transaction.visibleStages.count;
80 |
81 | for (MKStepView *stepView in self.subviews)
82 | {
83 | [stepView setWidth:self.width/count];
84 | }
85 |
86 | [self stackSubviewsLeftToRightWithMargin:0.0];
87 |
88 | NSView *lastView = self.subviews.lastObject;
89 |
90 | if (lastView)
91 | {
92 | [lastView setWidth:self.width - lastView.x];
93 | }
94 |
95 | }
96 |
97 | /*
98 | - (void)display
99 | {
100 | return;
101 | }
102 | */
103 |
104 | - (void)drawRect:(NSRect)dirtyRect
105 | {
106 | [super drawRect:dirtyRect];
107 | }
108 |
109 | @end
110 |
--------------------------------------------------------------------------------
/BitMarkets/resources/categories copy.json:
--------------------------------------------------------------------------------
1 | {
2 | "_type": "Group",
3 | "name": "For Sale",
4 |
5 | "children": [
6 | { "_type": "Category", "name" : "Antiques"},
7 | { "_type": "Category", "name" : "Appliances" },
8 | { "_type": "Category", "name" : "Arts and Crafts" },
9 | { "_type": "Category", "name" : "Auto Parts" },
10 | { "_type": "Category", "name" : "Bags" },
11 | { "_type": "Category", "name" : "Beauty and Health" },
12 | { "_type": "Category", "name" : "Bikes" },
13 | { "_type": "Category", "name" : "Boats" },
14 | { "_type": "Category", "name" : "Books" },
15 | { "_type": "Category", "name" : "Business" },
16 | { "_type": "Category", "name" : "CDs/DVD/VHS" },
17 | { "_type": "Category", "name" : "Cell Phones" },
18 | { "_type": "Category", "name" : "Men's Clothing", },
19 | { "_type": "Category", "name" : "Women's Clothing", },
20 | { "_type": "Category", "name" : "Collectibles" },
21 | { "_type": "Category", "name" : "Computer" },
22 | { "_type": "Category", "name" : "Electronics" },
23 | { "_type": "Category", "name" : "Farm and Garden" },
24 | { "_type": "Category", "name" : "Furniture" },
25 | { "_type": "Category", "name" : "General" },
26 | { "_type": "Category", "name" : "Heavy Equipment" },
27 | { "_type": "Category", "name" : "Household" },
28 | { "_type": "Category", "name" : "Jewelry" },
29 | { "_type": "Category", "name" : "Materials" },
30 | { "_type": "Category", "name" : "Motorcycles" },
31 | { "_type": "Category", "name" : "Musical Instruments" },
32 | { "_type": "Category", "name" : "RVs & Camping" },
33 | { "_type": "Category", "name" : "Photo and Video" },
34 | { "_type": "Category", "name" : "Shoes" },
35 | { "_type": "Category", "name" : "Sporting" },
36 | { "_type": "Category", "name" : "Tickets" },
37 | { "_type": "Category", "name" : "Tools" },
38 | { "_type": "Category", "name" : "Toys and Games" },
39 | { "_type": "Category", "name" : "Vehicles" },
40 | { "_type": "Category", "name" : "Video Gaming" }
41 | ]
42 | }
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/MKTextFieldCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKTextFieldCell.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 7/1/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKTextFieldCell.h"
10 |
11 | @implementation MKTextFieldCell
12 |
13 | - (id)init
14 | {
15 | self = [super init];
16 |
17 | if (self)
18 | {
19 | self.marginLeft = 10.0;
20 | self.marginRight = 10.0;
21 | self.lineColor = [NSColor colorWithCalibratedWhite:.8 alpha:1.0];
22 | }
23 |
24 | return self;
25 | }
26 |
27 | - (NSRect)drawingRectForBounds:(NSRect)rect
28 | {
29 | return [self titleRectForBounds:rect];
30 | }
31 |
32 | - (NSRect)titleRectForBounds:(NSRect)rect
33 | {
34 | NSRect rectInset = NSMakeRect(
35 | rect.origin.x + self.marginLeft,
36 | rect.origin.y + _marginBottom,
37 | rect.size.width - self.marginLeft - self.marginRight,
38 | rect.size.height - self.marginBottom - self.marginTop);
39 |
40 | // vertically center
41 | NSSize titleSize = [[self attributedStringValue] size];
42 | rectInset.origin.y += (rectInset.size.height - titleSize.height)/2.0 - 0.5;
43 |
44 | return [super drawingRectForBounds:rectInset];
45 | }
46 |
47 |
48 | - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
49 | {
50 | [super drawInteriorWithFrame:cellFrame inView:controlView];
51 |
52 | if (self.bottomLineWidth)
53 | {
54 | CGFloat x = cellFrame.origin.x;
55 | CGFloat y = cellFrame.origin.y;
56 | CGFloat h = cellFrame.size.height;
57 | CGFloat w = cellFrame.size.width;
58 |
59 | [self.lineColor set];
60 |
61 | [NSBezierPath setDefaultLineCapStyle:NSButtLineCapStyle];
62 |
63 | NSBezierPath *aPath = [NSBezierPath bezierPath];
64 | [aPath setLineWidth:self.bottomLineWidth];
65 | [aPath moveToPoint:NSMakePoint(x, y+h)];
66 | [aPath lineToPoint:NSMakePoint(x+w, y+h)];
67 | [aPath setLineCapStyle:NSSquareLineCapStyle];
68 | [aPath stroke];
69 | }
70 | }
71 |
72 | - (void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(NSView *)controlView
73 | {
74 | /*
75 | [super drawRect:dirtyRect];
76 | [[NSColor whiteColor] set];
77 | NSRectFill(dirtyRect);
78 |
79 | [self drawInteriorWithFrame:cellFrame inView:controlView];
80 | */
81 | }
82 |
83 |
84 |
85 |
86 | @end
87 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Helpers/MKCurrency.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKCurrency.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 8/11/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKCurrency.h"
10 | #import "MKExchangeRate.h"
11 | #import
12 | #import
13 |
14 | @implementation MKCurrency
15 |
16 | /*
17 | - (NSNumberFormatter *)priceFormatter
18 | {
19 | NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
20 | //[formatter setLocalizesFormat:NO];
21 | [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
22 | [formatter setPartialStringValidationEnabled:YES];
23 | [formatter setMinimum:0];
24 | [formatter setMaximumFractionDigits:6];
25 | [formatter setMaximumIntegerDigits:3];
26 | return formatter;
27 | }
28 | */
29 |
30 | - (NSString *)formattedPriceForSymbol:(NSString *)aSymbol
31 | {
32 | NSNumber *rateForSymbol = @1.0;
33 | NSInteger sigDigits = 1;
34 |
35 | if ([aSymbol isEqualToString:@"BTC"] || [aSymbol isEqualToString:@"XBT"])
36 | {
37 | rateForSymbol = @1.0;
38 | sigDigits = 4;
39 | }
40 | else
41 | {
42 | MKExchangeRate *rate = [MKExchangeRate shared];
43 | rateForSymbol = [rate btcPerSymbol:aSymbol];
44 | }
45 |
46 | if (rateForSymbol == nil)
47 | {
48 | return nil;
49 | }
50 |
51 | NSNumber *priceForSymbol = @(self.btcAmount.floatValue * rateForSymbol.floatValue);
52 | NSString *formattedPrice = [priceForSymbol asFormattedStringWithFractionalDigits:sigDigits];
53 | return formattedPrice;
54 | }
55 |
56 | - (NSArray *)defaultSymbols
57 | {
58 | return @[@"BTC", @"USD", @"EUR"];
59 | }
60 |
61 | - (NSString *)formattedPriceSetString
62 | {
63 | NSString *outputString = @"";
64 | NSString *separator = @" ";
65 |
66 | for (NSString *symbol in self.defaultSymbols)
67 | {
68 | NSString *price = [self formattedPriceForSymbol:symbol];
69 |
70 | if (price)
71 | {
72 | if (outputString.length)
73 | {
74 | outputString = [outputString stringByAppendingString:separator];
75 | }
76 |
77 | outputString = [outputString stringByAppendingString:price];
78 | //outputString = [outputString stringByAppendingString:@" "];
79 | outputString = [outputString stringByAppendingString:symbol];
80 | }
81 | }
82 |
83 | // /NSLog(@"outputString '%@'", outputString);
84 | return outputString;
85 | }
86 |
87 | @end
88 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Base/MKMarkets.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKMarkets.m
3 | // Bitmessage
4 | //
5 | // Created by Steve Dekorte on 3/13/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKMarkets.h"
10 | #import "MKExchangeRate.h"
11 | #import
12 | #import
13 |
14 | @implementation MKMarkets
15 |
16 | - (id)init
17 | {
18 | self = [super init];
19 | self.nodeTitle = @"BitMarkets";
20 | self.nodeSuggestedWidth = @150;
21 |
22 | self.nodeShouldSortChildren = @NO;
23 |
24 | _rootRegion = (MKRegion *)[MKRegion rootInstance];
25 |
26 | [self addChild:self.rootRegion];
27 |
28 | if (NO)
29 | {
30 | [_rootRegion setShouldInlineChildren:YES];
31 | _rootRegion.nodeSuggestedWidth = @250;
32 | }
33 |
34 | self.mkChannel = [[MKMarketChannel alloc] init];
35 | [self addChild:self.mkChannel];
36 |
37 | self.mkDirectMessages = [[MKDirectMessages alloc] init];
38 | //[self addChild:self.mkDirectMessages];
39 |
40 | //self.mkUpdatesSubscription = [[MKUpdatesSubscription alloc] init];
41 |
42 | self.buys = [[MKBuys alloc] init];
43 | //[_buys read];
44 | [self addChild:_buys];
45 |
46 | self.sells = [[MKSells alloc] init];
47 | //[_sells read];
48 | [self addChild:_sells];
49 |
50 | [self.mkChannel performSelector:@selector(fetch) withObject:nil afterDelay:0.0];
51 | [self.rootRegion updateCounts];
52 | self.rootRegion.nodeDoesRememberChildPath = @YES;
53 |
54 | //[MKExchangeRate shared];
55 |
56 | [self setRefreshInterval:10];
57 | return self;
58 | }
59 |
60 | - (void)read
61 | {
62 | [_buys read];
63 | [_sells read];
64 | }
65 |
66 | - (void)write
67 | {
68 | [_buys write];
69 | [_sells write];
70 | }
71 |
72 | - (BOOL)handleMsg:(MKMsg *)msg
73 | {
74 | if ([self.sells handleMsg:msg])
75 | {
76 | return YES;
77 | }
78 |
79 | if ([self.buys handleMsg:msg])
80 | {
81 | return YES;
82 | }
83 |
84 | return NO;
85 | }
86 |
87 | - (void)refresh
88 | {
89 | if (BNErrorReport.sharedBNErrorReport.isOpen)
90 | {
91 | return;
92 | }
93 |
94 | @try
95 | {
96 | [self.sells update];
97 | [self.buys update];
98 | [self.mkChannel fetch];
99 |
100 | //[NSException raise:@"test error report" format:@""];
101 | }
102 | @catch (NSException *exception)
103 | {
104 | [BNErrorReport.sharedBNErrorReport reportException:exception];
105 | }
106 | }
107 |
108 | - (void)delete
109 | {
110 | return;
111 | }
112 |
113 | @end
114 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Views/BNKeyView.m:
--------------------------------------------------------------------------------
1 | //
2 | // BNKeyView.m
3 | // BitMarkets
4 | //
5 | // Created by Steve Dekorte on 4/29/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "BNKeyView.h"
12 |
13 | @implementation BNKeyView
14 |
15 | - (id)initWithFrame:(NSRect)frame
16 | {
17 | self = [super initWithFrame:frame];
18 |
19 | if (self)
20 | {
21 | [self setAutoresizesSubviews:YES];
22 | [self setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable];
23 |
24 | self.qrWidth = 512;
25 | self.qrCodeImageView = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, _qrWidth, _qrWidth)];
26 | [self addSubview:self.qrCodeImageView];
27 |
28 | self.qrCodeTextView = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, _qrWidth, 20)];
29 | [self addSubview:self.qrCodeTextView];
30 |
31 | [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(syncToNode) name:nil object:self.node];
32 | }
33 |
34 | return self;
35 | }
36 |
37 | - (void)dealloc
38 | {
39 | [NSNotificationCenter.defaultCenter removeObserver:self];
40 | }
41 |
42 | - (void)syncToNode
43 | {
44 | NSLog(@"_node.address = %@", _node.address);
45 |
46 | self.qrCodeImageView.image = [QRCodeGenerator qrImageForString:_node.address imageSize:_qrWidth];
47 | self.qrCodeTextView.string = _node.address;
48 | [_qrCodeTextView setThemePath:@"qr/address"];
49 | [_qrCodeTextView setEditable:NO];
50 | [_qrCodeTextView setNeedsDisplay:YES];
51 | }
52 |
53 | - (void)drawRect:(NSRect)dirtyRect
54 | {
55 | [super drawRect:dirtyRect];
56 | [[NSColor whiteColor] set];
57 | NSRectFill(dirtyRect);
58 | }
59 |
60 | - (void)setNode:(BNKey *)node
61 | {
62 | if (_node != node)
63 | {
64 | [NSNotificationCenter.defaultCenter removeObserver:self name:nil object:_node];
65 | _node = node;
66 | [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(syncToNode) name:nil object:_node];
67 | [self syncToNode];
68 | }
69 |
70 | [self layout];
71 | }
72 |
73 | - (void)setFrame:(NSRect)frameRect
74 | {
75 | [super setFrame:frameRect];
76 | [self layout];
77 | }
78 |
79 | - (void)layout
80 | {
81 | CGFloat minx = self.superview.width/2;
82 | CGFloat miny = self.superview.height/2;
83 | CGFloat min = minx < miny ? minx : miny;
84 |
85 | [self.qrCodeImageView setHeight:min];
86 | [self.qrCodeImageView setWidth:min];
87 |
88 | [self.qrCodeImageView centerXInSuperview];
89 | [self.qrCodeImageView centerYInSuperview];
90 | [self.qrCodeTextView placeYBelow:self.qrCodeImageView margin:20];
91 | [self.qrCodeTextView centerXInSuperview];
92 | [self setNeedsDisplay:YES];
93 | }
94 |
95 | @end
96 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | #Note
3 |
4 | This OSX repo has been deprecated as we are working on a Javascript/Electron implementation of Bitmarkets now. We'll be releasing that repo when it's ready.
5 |
6 |
7 | #Bitmarkets
8 |
9 | Bitmarkets is a protocol and client used to implement a p2p online marketplace client using Bitmessage for communications and Bitcoin for payments.
10 |
11 |
12 | #compiling
13 |
14 | After cloning the git repo, you'll need to init and pull all the submodules by running init.sh and pull.sh. Then you should be able to build and run in Xcode.
15 |
16 | To verify/audit the build you'll need to download and compile some of the statically built executables (e.g. python and tor in BitmessageKit) seperately.
17 |
18 | #security notes
19 |
20 | Bitmarkets talks to the network in three ways:
21 | - BitcoinJ talks to other Bitcoin nodes via Tor
22 | - Bitmessage talks to other Bitmessage nodes via Tor
23 | - HTTP requests to blockchain.info are used get the current Bitcoin exchange rate.
24 |
25 | Client side files are not currently encrypted. We recommend at least using FileVault.
26 |
27 |
28 | #dev path high priority
29 |
30 | - GNUstep port to Linux and Windows
31 | - ability to choose between bid addresses
32 | - auto-updates
33 | - app store release
34 | - automated tests
35 | - encrypt all local data files and add password login
36 | - deterministic builds (see https://gitian.org)
37 | - use tor for blockchain.info bitcoin price updates
38 |
39 | #dev path low priority
40 |
41 | - UI for accepting multiple sales on a single post?
42 | - support stores with namecoin (a namecoin name to bitmessage address entry)
43 | - option for using separate pubkey for each post
44 | - ui update, image browsing view option within a category
45 | - use ntimelock to avoid utx pollution for transactions that fail to reach agreement?
46 |
47 |
48 | #links
49 |
50 | - website: http://voluntary.net
51 | - twitter: https://twitter.com/voluntarynet
52 |
53 |
54 | #architecture notes
55 |
56 | On starting, the app launches three child processes:
57 |
58 | 1) a Tor server, which is used by the Bitmessage and BitcoinJ servers use to route their communications to the Bitmessage network and Bitcoin network (respectively) through the Tor network.
59 |
60 | 2) a Bitmessage server, which is used for posting sales to a public Bitmessage channel and for sending messages between buyers and sellers to 1) place and accept bids 2) setup escrow 3) send physical delivery address to seller 4) release escrow via payment or refund
61 |
62 | 3) a BitcoinJ server, which is used as the app's' Bitcoin wallet and to construct and trackthe escrow transactions.
63 |
64 |
65 | #versions
66 |
67 | v0.8.9:
68 | - BitcoinJ now uses Tor
69 | - POW limited to 1 core
70 | - image attachments auto resized to fit in 32kb JPEG
71 |
72 | v0.8.8
73 | - server launch fix
74 | - performance improvements
75 | -- caching address valid requests
76 | -- coallessing node notifications
77 |
--------------------------------------------------------------------------------
/BitMarkets/Classes/Market/Transactions/Msg/MKSetupLockMsg.m:
--------------------------------------------------------------------------------
1 | //
2 | // MKSetupLockMsg.m
3 | // BitMarkets
4 | //
5 | // Created by Rich Collins on 7/8/14.
6 | // Copyright (c) 2014 voluntary.net. All rights reserved.
7 | //
8 |
9 | #import "MKSetupLockMsg.h"
10 | #import "MKLock.h"
11 |
12 | @implementation MKSetupLockMsg
13 |
14 | - (id)init
15 | {
16 | self = [super init];
17 | [self addPropertyName:@"broadcastDateNumber"];
18 | return self;
19 | }
20 |
21 | - (void)configureAndBroadcastTx
22 | {
23 | BNTx *escrowTx = [self.runningWallet newTx];
24 | [escrowTx configureForEscrowWithValue:self.lockNode.lockEscrowPriceInSatoshi];
25 | self.lockNode.error = nil;
26 |
27 | if (escrowTx.error)
28 | {
29 | if (escrowTx.error.insufficientValue)
30 | {
31 | self.lockNode.error = [NSString stringWithFormat:@"%@BTC Required", escrowTx.error.insufficientValue.satoshiToBtc];
32 | }
33 | else
34 | {
35 | self.lockNode.error = @"unknown error while constructing change tx";
36 | }
37 |
38 | return;
39 | }
40 |
41 | NSNumber *value = [NSNumber numberWithLongLong:
42 | [(BNTxOut *)[escrowTx.outputs firstObject] value].longLongValue + [escrowTx fee].longLongValue];
43 |
44 | self.tx = [self.runningWallet newTx];
45 | [self.tx configureForOutputWithValue:value];
46 | [self.tx subtractFee];
47 | [self.tx sign];
48 | [self.tx lockOutput:[self.tx firstOutput]];
49 | self.payload = self.tx.asJSONObject;
50 | [self write];
51 | [self.tx broadcast]; //TODO make sure that peers accepted it
52 | //[self broadcastIfNeeded];
53 | }
54 |
55 | - (void)returnChangeToWallet
56 | {
57 | if (self.tx)
58 | {
59 | [self.tx unlockOutputs];
60 | }
61 | }
62 | /*
63 | - (void)broadcastIfNeeded
64 | {
65 | NSTimeInterval broadcastTimeoutInSeconds = 20*60;
66 |
67 | if (self.tx && !self.tx.isConfirmed)
68 | {
69 | if (
70 | !self.broadcastDate ||
71 | ([self.broadcastDate ageInSeconds] > broadcastTimeoutInSeconds)
72 | )
73 | {
74 | @try
75 | {
76 | [self.tx broadcast]; //TODO make sure that peers accepted it
77 |
78 | NSLog(@"MKSetupLockMsg broadcast change tx '%@'", self.tx.txHash);
79 | [self setBroadcastDate:[NSDate date]];
80 | [self write];
81 | }
82 | @catch (NSException *exception)
83 | {
84 | [self lockNode].error = [exception description];
85 | NSLog(@"MKSetupLockMsg broadcast error '%@'",[exception description]);
86 | }
87 | }
88 | }
89 | }
90 | */
91 |
92 | - (void)setBroadcastDate:(NSDate *)aDate
93 | {
94 | self.broadcastDateNumber = [aDate asNumber];
95 | }
96 |
97 | - (NSDate *)broadcastDate
98 | {
99 | return [NSDate fromNumber:self.broadcastDateNumber];
100 | }
101 |
102 | @end
103 |
--------------------------------------------------------------------------------