Merge pull request #2 from James-Sangalli/trade

Trade
pull/4/head
James Sangalli 7 years ago committed by GitHub
commit 714a0083cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      .idea/.name
  2. 32
      .idea/codeStyles/Project.xml
  3. 6
      .idea/inspectionProfiles/Project_Default.xml
  4. 8
      .idea/modules.xml
  5. 9
      .idea/runConfigurations/Trust.xml
  6. 9
      .idea/runConfigurations/TrustTests.xml
  7. 9
      .idea/runConfigurations/TrustUITests.xml
  8. 9
      .idea/runConfigurations/Trust___Europe.xml
  9. 2
      .idea/trust-wallet-ios.iml
  10. 6
      .idea/vcs.xml
  11. 794
      .idea/workspace.xml
  12. 4
      .idea/xcode.xml
  13. 2
      Podfile.lock
  14. 28
      Trust.xcodeproj/project.pbxproj
  15. 16
      Trust.xcodeproj/xcshareddata/xcschemes/TrustTests.xcscheme
  16. 16
      Trust.xcodeproj/xcshareddata/xcschemes/TrustUITests.xcscheme
  17. 73
      Trust.xcworkspace/xcshareddata/xcschemes/Trust - Europe.xcscheme
  18. 73
      Trust.xcworkspace/xcshareddata/xcschemes/Trust.xcscheme
  19. 73
      Trust.xcworkspace/xcshareddata/xcschemes/TrustTests.xcscheme
  20. 73
      Trust.xcworkspace/xcshareddata/xcschemes/TrustUITests.xcscheme
  21. 22
      Trust/EtherClient/EtherKeystore.swift
  22. 4
      Trust/EtherClient/KeyStoreError.swift
  23. 2
      Trust/EtherClient/Keystore.swift
  24. 42
      Trust/EtherClient/Requests/MarketOrders.swift
  25. 122
      Trust/Market/SignOrders.swift
  26. 19
      Trust/Trust.entitlements
  27. 8
      TrustTests/EtherClient/EtherKeystoreTests.swift
  28. 2
      TrustTests/Factories/FakeKeystore.swift
  29. 2
      TrustTests/Foundation/EtherNumberFormatterTests.swift
  30. 43
      TrustTests/Market/OrderSigningTests.swift
  31. 3
      TrustTests/TrustTests.swift

@ -0,0 +1 @@
Trust

@ -0,0 +1,32 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="ClassPredef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Class" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="mm" header="h" fileNamingConvention="NONE" />
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="TodoComment" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/trust-wallet-ios.iml" filepath="$PROJECT_DIR$/.idea/trust-wallet-ios.iml" />
</modules>
</component>
</project>

@ -0,0 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Trust" type="AppleRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="Trust" TARGET_NAME="Trust" CONFIG_NAME="Debug" SCHEME_NAME="Trust" RUN_TARGET_PROJECT_NAME="Trust" RUN_TARGET_NAME="Trust" MAKE_ACTIVE="TRUE">
<envs />
<EXTENSION ID="org.jetbrains.appcode.reveal.RevealRunConfigurationExtension">
<REVEAL_SETTINGS autoInject="false" autoInstall="true" askToEnableAutoInstall="true" />
</EXTENSION>
<method />
</configuration>
</component>

@ -0,0 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TrustTests" type="AppleRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="Trust" TARGET_NAME="Trust" CONFIG_NAME="Debug" SCHEME_NAME="TrustTests" RUN_TARGET_PROJECT_NAME="Trust" RUN_TARGET_NAME="Trust" MAKE_ACTIVE="TRUE">
<envs />
<EXTENSION ID="org.jetbrains.appcode.reveal.RevealRunConfigurationExtension">
<REVEAL_SETTINGS autoInject="false" autoInstall="true" askToEnableAutoInstall="true" />
</EXTENSION>
<method />
</configuration>
</component>

@ -0,0 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="TrustUITests" type="AppleRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="Trust" TARGET_NAME="Trust" CONFIG_NAME="Debug" SCHEME_NAME="TrustUITests" RUN_TARGET_PROJECT_NAME="Trust" RUN_TARGET_NAME="Trust" MAKE_ACTIVE="TRUE">
<envs />
<EXTENSION ID="org.jetbrains.appcode.reveal.RevealRunConfigurationExtension">
<REVEAL_SETTINGS autoInject="false" autoInstall="true" askToEnableAutoInstall="true" />
</EXTENSION>
<method />
</configuration>
</component>

@ -0,0 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Trust - Europe" type="AppleRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="Trust" TARGET_NAME="Trust" CONFIG_NAME="Debug" SCHEME_NAME="Trust - Europe" RUN_TARGET_PROJECT_NAME="Trust" RUN_TARGET_NAME="Trust" MAKE_ACTIVE="TRUE">
<envs />
<EXTENSION ID="org.jetbrains.appcode.reveal.RevealRunConfigurationExtension">
<REVEAL_SETTINGS autoInject="false" autoInstall="true" askToEnableAutoInstall="true" />
</EXTENSION>
<method />
</configuration>
</component>

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="AppCode" type="CIDR_MODULE" version="4" />

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

@ -0,0 +1,794 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="36bad8c5-1e9e-4730-ba80-fb45b953be97" name="Default" comment="">
<change beforePath="" afterPath="$PROJECT_DIR$/JS/.babelrc" />
<change beforePath="" afterPath="$PROJECT_DIR$/JS/dist/trust-min.js" />
<change beforePath="" afterPath="$PROJECT_DIR$/JS/dist/trust.js" />
<change beforePath="" afterPath="$PROJECT_DIR$/JS/gulpfile.babel.js" />
<change beforePath="" afterPath="$PROJECT_DIR$/JS/package-lock.json" />
<change beforePath="" afterPath="$PROJECT_DIR$/JS/package.json" />
<change beforePath="" afterPath="$PROJECT_DIR$/JS/src/index.js" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Assets.xcassets/settings_preferences.imageset/Contents.json" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Assets.xcassets/settings_preferences.imageset/settings_preferences.png" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Extensions/UINavigationController.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Extensions/UITextFieldAdditions.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Foundation/DecimalFormatter.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Foundation/StringFormatter.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Settings/Controllers/PreferencesController.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Settings/Types/PreferenceOption.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Settings/ViewControllers/PreferencesViewController.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/Trust/Settings/ViewModels/PreferencesViewModel.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/TrustTests/Core/ViewModels/InCoordinatorViewModelTests.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/TrustTests/Factories/PreferencesController.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/TrustTests/Foundation/DecimalNumberFormatterTest.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/TrustTests/Foundation/StringFormatterTest.swift" />
<change beforePath="" afterPath="$PROJECT_DIR$/TrustTests/Settings/Controllers/PreferencesControllerTests.swift" />
<change beforePath="$PROJECT_DIR$/.gitignore" afterPath="$PROJECT_DIR$/.gitignore" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/Trust.xcodeproj/project.pbxproj" afterPath="$PROJECT_DIR$/Trust.xcodeproj/project.pbxproj" />
<change beforePath="$PROJECT_DIR$/Trust/Accounts/ViewModels/AccountViewModel.swift" afterPath="$PROJECT_DIR$/Trust/Accounts/ViewModels/AccountViewModel.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Accounts/ViewModels/AccountsViewController.swift" afterPath="$PROJECT_DIR$/Trust/Accounts/ViewModels/AccountsViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Accounts/Views/AccountViewCell.swift" afterPath="$PROJECT_DIR$/Trust/Accounts/Views/AccountViewCell.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Accounts/Views/AccountViewCell.xib" afterPath="$PROJECT_DIR$/Trust/Accounts/Views/AccountViewCell.xib" />
<change beforePath="$PROJECT_DIR$/Trust/Assets.xcassets/glasses.imageset/glasses@3x.png" afterPath="$PROJECT_DIR$/Trust/Assets.xcassets/glasses.imageset/glasses@3x.png" />
<change beforePath="$PROJECT_DIR$/Trust/Browser/Factory/WKWebViewConfiguration.swift" afterPath="$PROJECT_DIR$/Trust/Browser/Factory/WKWebViewConfiguration.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Browser/Types/BrowserURLParser.swift" afterPath="$PROJECT_DIR$/Trust/Browser/Types/BrowserURLParser.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Core/ViewModels/InCoordinatorViewModel.swift" afterPath="$PROJECT_DIR$/Trust/Core/ViewModels/InCoordinatorViewModel.swift" />
<change beforePath="$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift" afterPath="$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Extensions/Address.swift" afterPath="$PROJECT_DIR$/Trust/Extensions/Address.swift" />
<change beforePath="$PROJECT_DIR$/Trust/InCoordinator.swift" afterPath="$PROJECT_DIR$/Trust/InCoordinator.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Info.plist" afterPath="$PROJECT_DIR$/Trust/Info.plist" />
<change beforePath="$PROJECT_DIR$/Trust/Lock/ViewModels/LockCreatePasscodeViewModel.swift" afterPath="$PROJECT_DIR$/Trust/Lock/ViewModels/LockCreatePasscodeViewModel.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Market/SignOrders.swift" afterPath="$PROJECT_DIR$/Trust/Market/SignOrders.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Settings/Types/Config.swift" afterPath="$PROJECT_DIR$/Trust/Settings/Types/Config.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Settings/Types/ConfigExplorer.swift" afterPath="$PROJECT_DIR$/Trust/Settings/Types/ConfigExplorer.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Settings/Types/RPCServers.swift" afterPath="$PROJECT_DIR$/Trust/Settings/Types/RPCServers.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Settings/ViewControllers/SettingsViewController.swift" afterPath="$PROJECT_DIR$/Trust/Settings/ViewControllers/SettingsViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Settings/ViewModels/SettingsViewModel.swift" afterPath="$PROJECT_DIR$/Trust/Settings/ViewModels/SettingsViewModel.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Tokens/ViewControllers/NewTokenViewController.swift" afterPath="$PROJECT_DIR$/Trust/Tokens/ViewControllers/NewTokenViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Tokens/ViewControllers/TokensViewController.swift" afterPath="$PROJECT_DIR$/Trust/Tokens/ViewControllers/TokensViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transactions/ViewControllers/TransactionViewController.swift" afterPath="$PROJECT_DIR$/Trust/Transactions/ViewControllers/TransactionViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transactions/ViewModels/TransactionDetailsViewModel.swift" afterPath="$PROJECT_DIR$/Trust/Transactions/ViewModels/TransactionDetailsViewModel.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transactions/ViewModels/TransactionsViewModel.swift" afterPath="$PROJECT_DIR$/Trust/Transactions/ViewModels/TransactionsViewModel.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transfer/Types/GasLimitConfiguration.swift" afterPath="$PROJECT_DIR$/Trust/Transfer/Types/GasLimitConfiguration.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transfer/Types/GasPriceConfiguration.swift" afterPath="$PROJECT_DIR$/Trust/Transfer/Types/GasPriceConfiguration.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transfer/ViewControllers/ConfigureTransactionViewController.swift" afterPath="$PROJECT_DIR$/Trust/Transfer/ViewControllers/ConfigureTransactionViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Transfer/ViewControllers/SendViewController.swift" afterPath="$PROJECT_DIR$/Trust/Transfer/ViewControllers/SendViewController.swift" />
<change beforePath="$PROJECT_DIR$/Trust/Wallet/ViewControllers/ImportWalletViewController.swift" afterPath="$PROJECT_DIR$/Trust/Wallet/ViewControllers/ImportWalletViewController.swift" />
<change beforePath="$PROJECT_DIR$/TrustTests/Coordinators/InCoordinatorTests.swift" afterPath="$PROJECT_DIR$/TrustTests/Coordinators/InCoordinatorTests.swift" />
<change beforePath="$PROJECT_DIR$/TrustTests/Info.plist" afterPath="$PROJECT_DIR$/TrustTests/Info.plist" />
<change beforePath="$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift" afterPath="$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift" />
<change beforePath="$PROJECT_DIR$/TrustTests/Settings/ConfigTests.swift" afterPath="$PROJECT_DIR$/TrustTests/Settings/ConfigTests.swift" />
<change beforePath="$PROJECT_DIR$/TrustTests/Transfer/Types/GasLimitConfigurationTests.swift" afterPath="$PROJECT_DIR$/TrustTests/Transfer/Types/GasLimitConfigurationTests.swift" />
<change beforePath="$PROJECT_DIR$/TrustTests/Transfer/Types/GasPriceConfigurationTests.swift" afterPath="$PROJECT_DIR$/TrustTests/Transfer/Types/GasPriceConfigurationTests.swift" />
<change beforePath="$PROJECT_DIR$/TrustUITests/Info.plist" afterPath="$PROJECT_DIR$/TrustUITests/Info.plist" />
</list>
<ignored path="$USER_HOME$/Library/Developer/Xcode/DerivedData/Trust-fagtjernnlugowdujijvfmqpxdjn/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="iphonesimulator_6216FED6-8581-4A11-8F3B-DC7A7B331DDE" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="SignOrders.swift" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Trust/Market/SignOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
<caret line="97" column="0" lean-forward="false" selection-start-line="97" selection-start-column="0" selection-end-line="97" selection-end-column="0" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="OrderSigningTests.swift" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="435">
<caret line="29" column="75" lean-forward="true" selection-start-line="29" selection-start-column="75" selection-end-line="29" selection-end-column="75" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>List&lt;O</find>
<find>order</find>
<find>CONTRACT_A</find>
<find>OrderTests.swift</find>
<find>List</find>
<find>Account</find>
<find>createAcc</find>
<find>sign</find>
<find>signmess</find>
<find>public class Order</find>
<find>account</find>
<find>CONTRACT_ADDR</find>
<find>BigInt</find>
<find>public class order</find>
<find>SignOrders</find>
<find>market</find>
<find>response</find>
<find>publ</find>
<find>EtherKeyStore</find>
<find>EtherKeystore</find>
<find>Result&lt;Data, KeystoreError&gt;</find>
<find>keystoretest</find>
<find>signmessage</find>
<find>balance</find>
<find>UInt16</find>
<find>Uint8</find>
<find>signMessageDa</find>
<find>expiryTimeStamp</find>
</findStrings>
<replaceStrings>
<replace>UInt8</replace>
<replace>expiryBuffer</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="master" />
</map>
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/Trust/Transfer/Coordinators/SignMessageCoordinator.swift" />
<option value="$PROJECT_DIR$/TrustTests/Market/OrderTests.swift" />
<option value="$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift" />
<option value="$PROJECT_DIR$/TrustTests/Factories/FakeKeystore.swift" />
<option value="$PROJECT_DIR$/TrustTests/Foundation/EtherNumberFormatterTests.swift" />
<option value="$PROJECT_DIR$/TrustTests/TrustTests.swift" />
<option value="$PROJECT_DIR$/Trust/EtherClient/Keystore.swift" />
<option value="$PROJECT_DIR$/Trust/EtherClient/KeyStoreError.swift" />
<option value="$PROJECT_DIR$/Trust/EtherClient/EtherKeystore.swift" />
<option value="$PROJECT_DIR$/Trust/Market/SignOrders.swift" />
<option value="$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="1280" />
<option name="y" value="23" />
<option name="width" value="2560" />
<option name="height" value="1349" />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
<profile-state>
<expanded-state>
<State>
<id />
</State>
<State>
<id>C/C++</id>
</State>
<State>
<id>FunctionsC/C++</id>
</State>
<State>
<id>General</id>
</State>
<State>
<id>GeneralJavaScript</id>
</State>
<State>
<id>GeneralObjective-C</id>
</State>
<State>
<id>JavaScript</id>
</State>
<State>
<id>Objective-C</id>
</State>
<State>
<id>RELAX NG</id>
</State>
</expanded-state>
<selected-state>
<State>
<id>SyntaxError</id>
</State>
</selected-state>
</profile-state>
</entry>
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Cidr.FilesView" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="" type="efc3779f:XcodeRootNode" />
<item name="Pods" type="1d218c8b:XcodeProjectNode" />
</path>
<path>
<item name="" type="efc3779f:XcodeRootNode" />
<item name="Trust" type="1d218c8b:XcodeProjectNode" />
</path>
<path>
<item name="" type="efc3779f:XcodeRootNode" />
<item name="Trust" type="1d218c8b:XcodeProjectNode" />
<item name="Trust" type="fcab9f18:XcodeViewNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="OBJC.PRESERVED_TARGET_SELECTION" value="Trust,,,TrustTests" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="XCTest/Kiwi.OrderSigningTests.testSigningOrders">
<configuration name="OrderSigningTests.testSigningOrders" type="OCUnitRunConfiguration" factoryName="XCTest/Kiwi" temporary="true" PASS_PARENT_ENVS_2="true" PROJECT_NAME="Trust" TARGET_NAME="TrustTests" CONFIG_NAME="Debug" SCHEME_NAME="OrderSigningTests.testSigningOrders" TEST_CLASS="OrderSigningTests" TEST_METHOD="testSigningOrders" TEST_MODE="SUITE_TEST">
<envs />
</configuration>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="Application.Trust - Europe" />
<item index="1" class="java.lang.String" itemvalue="Application.Trust" />
<item index="2" class="java.lang.String" itemvalue="Application.TrustTests" />
<item index="3" class="java.lang.String" itemvalue="Application.TrustUITests" />
<item index="4" class="java.lang.String" itemvalue="XCTest/Kiwi.OrderSigningTests.testSigningOrders" />
</list>
<recent_temporary>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="XCTest/Kiwi.OrderSigningTests.testSigningOrders" />
</list>
</recent_temporary>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="36bad8c5-1e9e-4730-ba80-fb45b953be97" name="Default" comment="" />
<created>1518149403208</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1518149403208</updated>
<workItem from="1518149408189" duration="891000" />
<workItem from="1518150610647" duration="1878000" />
<workItem from="1518156667059" duration="8644000" />
<workItem from="1518179719047" duration="2491000" />
<workItem from="1518182328173" duration="1050000" />
<workItem from="1518184346326" duration="4971000" />
<workItem from="1518228488178" duration="575000" />
<workItem from="1518256423251" duration="1963000" />
<workItem from="1518258416142" duration="2324000" />
<workItem from="1518266894983" duration="938000" />
<workItem from="1518269073532" duration="252000" />
<workItem from="1518269355518" duration="860000" />
<workItem from="1518331050521" duration="74000" />
<workItem from="1518331273522" duration="122000" />
<workItem from="1518331429859" duration="244000" />
<workItem from="1518334122492" duration="303000" />
<workItem from="1518334735649" duration="1042000" />
<workItem from="1518398527471" duration="1748000" />
<workItem from="1518403192759" duration="35589000" />
<workItem from="1518668693732" duration="3531000" />
</task>
<servers />
</component>
<component name="TestHistory">
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 11h 49m 35s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 11h 55m 47s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 12h 40m 41s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 12h 49m 32s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 13h 56m 45s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 14h 16m 02s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 14h 20m 03s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 14h 21m 00s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 14h 21m 31s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
<history-entry file="OrderSigningTests_testSigningOrders - 2018.02.15 at 14h 23m 19s.xml">
<configuration name="OrderSigningTests.testSigningOrders" configurationId="OCUnitRunConfiguration" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="81764000" />
</component>
<component name="ToolWindowManager">
<frame x="1280" y="23" width="2560" height="1349" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32498044" sideWeight="0.26171875" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22709475" sideWeight="0.5640625" order="14" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22709475" sideWeight="0.4359375" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="15" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="16" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.123046875" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39937353" sideWeight="0.4453125" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift</url>
<line>35</line>
<option name="timeStamp" value="14" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/Trust/Market/SignOrders.swift</url>
<line>97</line>
<option name="timeStamp" value="19" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/Trust/Market/SignOrders.swift</url>
<line>108</line>
<option name="timeStamp" value="26" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/Trust/Market/SignOrders.swift</url>
<line>117</line>
<option name="timeStamp" value="29" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/Trust/Market/SignOrders.swift</url>
<line>62</line>
<option name="timeStamp" value="32" />
</line-breakpoint>
</breakpoints>
<option name="time" value="35" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/TrustTests/Foundation/QRURLParserTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="24" lean-forward="false" selection-start-line="9" selection-start-column="24" selection-end-line="9" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Foundation/QRURLParserTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Market/SignOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="19" lean-forward="false" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Wallet/Coordinators/InitialWalletCreationCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="465">
<caret line="33" column="27" lean-forward="false" selection-start-line="33" selection-start-column="27" selection-end-line="33" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="30" column="0" lean-forward="true" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/EtherClient/EtherKeystoreTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="25" column="49" lean-forward="true" selection-start-line="25" selection-start-column="49" selection-end-line="25" selection-end-column="49" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="17" column="30" lean-forward="true" selection-start-line="17" selection-start-column="30" selection-end-line="17" selection-end-column="30" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Market/SignOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="105">
<caret line="7" column="19" lean-forward="false" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="28" column="0" lean-forward="false" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Transfer/Coordinators/SendTransactionCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="945">
<caret line="67" column="68" lean-forward="false" selection-start-line="67" selection-start-column="57" selection-end-line="67" selection-end-column="68" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/EtherKeystore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4770">
<caret line="318" column="29" lean-forward="false" selection-start-line="318" selection-start-column="29" selection-end-line="318" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Wallet/Coordinators/InitialWalletCreationCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Foundation/Coordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="60">
<caret line="4" column="9" lean-forward="false" selection-start-line="4" selection-start-column="9" selection-end-line="4" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Transfer/Coordinators/SendTransactionCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="690">
<caret line="50" column="87" lean-forward="false" selection-start-line="50" selection-start-column="72" selection-end-line="50" selection-end-column="87" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Pods/TrustKeystore/Sources/Account.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="14" lean-forward="false" selection-start-line="9" selection-start-column="14" selection-end-line="9" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Coordinators/WalletCoordinatorTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="58" column="31" lean-forward="true" selection-start-line="58" selection-start-column="31" selection-end-line="58" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Transfer/Coordinators/SignMessageCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="945">
<caret line="67" column="30" lean-forward="false" selection-start-line="67" selection-start-column="30" selection-end-line="67" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Transactions/Storage/TransactionsStorageTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="5" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Factories/Account.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Factories/TestKeyStore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Factories/Wallet.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Factories/UnconfirmedTransaction.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Factories/FakeEtherKeystore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="210">
<caret line="18" column="31" lean-forward="false" selection-start-line="18" selection-start-column="18" selection-end-line="18" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/AppCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Transfer/Controllers/TransactionConfiguratorTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Settings/RPCServerTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" lean-forward="true" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Market/OrderTests.swift" />
<entry file="file://$PROJECT_DIR$/TrustTests/Settings/ConfigTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="17" column="17" lean-forward="true" selection-start-line="17" selection-start-column="17" selection-end-line="17" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/Requests/MarketOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="22" column="1" lean-forward="false" selection-start-line="22" selection-start-column="1" selection-end-line="22" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Foundation/QRURLParserTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="222">
<caret line="41" column="0" lean-forward="true" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Factories/FakeKeystore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="383">
<caret line="48" column="25" lean-forward="true" selection-start-line="48" selection-start-column="25" selection-end-line="48" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Foundation/EtherNumberFormatterTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="4" column="13" lean-forward="false" selection-start-line="4" selection-start-column="13" selection-end-line="4" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/TrustTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90">
<caret line="6" column="1" lean-forward="false" selection-start-line="6" selection-start-column="1" selection-end-line="6" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="appcode.project-settings://3c3fc377">
<provider selected="true" editor-type-id="AppCode.ProjectSettings">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Wallet/Coordinators/InitialWalletCreationCoordinator.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
<caret line="9" column="1" lean-forward="false" selection-start-line="9" selection-start-column="1" selection-end-line="9" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Lock/Lock.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Accounts/ViewModels/AccountsViewController.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="30">
<caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/EtherClient/EtherKeystoreTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="206" column="13" lean-forward="false" selection-start-line="206" selection-start-column="13" selection-end-line="206" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/KeyStoreError.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="27" column="38" lean-forward="false" selection-start-line="27" selection-start-column="38" selection-end-line="27" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Pods/Result/Result/Result.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3090">
<caret line="3" column="12" lean-forward="false" selection-start-line="3" selection-start-column="12" selection-end-line="3" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/Keystore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="26" column="4" lean-forward="false" selection-start-line="26" selection-start-column="4" selection-end-line="26" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/AppDelegate.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="420">
<caret line="28" column="13" lean-forward="false" selection-start-line="28" selection-start-column="13" selection-end-line="28" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Accounts/ViewModels/AccountViewModel.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="19" column="47" lean-forward="false" selection-start-line="19" selection-start-column="47" selection-end-line="19" selection-end-column="47" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Pods/CryptoSwift/Sources/CryptoSwift/Foundation/Data+Extension.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="825">
<caret line="55" column="16" lean-forward="false" selection-start-line="55" selection-start-column="16" selection-end-line="55" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Pods/TrustKeystore/Sources/KeyStore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="344">
<caret line="177" column="16" lean-forward="false" selection-start-line="177" selection-start-column="16" selection-end-line="177" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Pods/TrustKeystore/Sources/Secp256k1.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="548">
<caret line="82" column="22" lean-forward="false" selection-start-line="82" selection-start-column="16" selection-end-line="82" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/EtherClient/EtherKeystore.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="213">
<caret line="302" column="9" lean-forward="false" selection-start-line="302" selection-start-column="9" selection-end-line="302" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Trust/Market/SignOrders.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
<caret line="97" column="0" lean-forward="false" selection-start-line="97" selection-start-column="0" selection-end-line="97" selection-end-column="0" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TrustTests/Market/OrderSigningTests.swift">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="435">
<caret line="29" column="75" lean-forward="true" selection-start-line="29" selection-start-column="75" selection-end-line="29" selection-end-column="75" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="XcodeMetaData" PROJECT_FILE="$PROJECT_DIR$/Trust.xcworkspace" SHOW_WORKSPACE_NOTIFICATIONS="true" />
</project>

@ -134,4 +134,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: c822d5e2373476315b6a83c8f096bdb9c846e467
COCOAPODS: 1.4.0
COCOAPODS: 1.3.1

@ -301,6 +301,9 @@
73C5CF45201A7CAB00C74316 /* LockPasscodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73C5CF44201A7CAB00C74316 /* LockPasscodeViewController.swift */; };
73CBC75F2020CBF800374666 /* AccountViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 73CBC75E2020CBF800374666 /* AccountViewCell.xib */; };
73CBC761202139FB00374666 /* FakeGetBalanceCoordinator(.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73CBC760202139FB00374666 /* FakeGetBalanceCoordinator(.swift */; };
76F1D137B10D8309E513BBDD /* OrderSigningTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F1DE8ADA3176D0277EDF20 /* OrderSigningTests.swift */; };
76F1D912AFEB21137B210FE5 /* SignOrders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F1DADFD07E2941897FD2E1 /* SignOrders.swift */; };
76F1DA1A819D5543FF698AF1 /* SignOrders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F1DADFD07E2941897FD2E1 /* SignOrders.swift */; };
73D26837202E827E009777A1 /* DecimalFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D26836202E827E009777A1 /* DecimalFormatter.swift */; };
73D2683B202E8411009777A1 /* DecimalNumberFormatterTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D2683A202E8411009777A1 /* DecimalNumberFormatterTest.swift */; };
73ED85A520349BE400593BF3 /* StringFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73ED85A420349BE400593BF3 /* StringFormatter.swift */; };
@ -675,6 +678,8 @@
73C5CF44201A7CAB00C74316 /* LockPasscodeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockPasscodeViewController.swift; sourceTree = "<group>"; };
73CBC75E2020CBF800374666 /* AccountViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccountViewCell.xib; sourceTree = "<group>"; };
73CBC760202139FB00374666 /* FakeGetBalanceCoordinator(.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FakeGetBalanceCoordinator(.swift"; sourceTree = "<group>"; };
76F1DADFD07E2941897FD2E1 /* SignOrders.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SignOrders.swift; sourceTree = "<group>"; };
76F1DE8ADA3176D0277EDF20 /* OrderSigningTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderSigningTests.swift; sourceTree = "<group>"; };
73D26836202E827E009777A1 /* DecimalFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecimalFormatter.swift; sourceTree = "<group>"; };
73D2683A202E8411009777A1 /* DecimalNumberFormatterTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecimalNumberFormatterTest.swift; sourceTree = "<group>"; };
73ED85A420349BE400593BF3 /* StringFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringFormatter.swift; sourceTree = "<group>"; };
@ -832,6 +837,7 @@
29AD8A071F93E1F0008E10E7 /* Trust.entitlements */,
613D04881FDE15F8008DE72E /* COMODO ECC Domain Validation Secure Server CA 2.cer */,
296106CD1F777E410006164B /* LaunchScreen.storyboard */,
76F1D1936604D6A022E9AE90 /* Market */,
);
path = Trust;
sourceTree = "<group>";
@ -854,6 +860,7 @@
29A13E261F6A901600E432A2 /* Welcome */,
2912CD0F1F6A830700C6CBE3 /* TrustTests.swift */,
2912CD111F6A830700C6CBE3 /* Info.plist */,
76F1D6E06C9FA1261851B222 /* Market */,
);
path = TrustTests;
sourceTree = "<group>";
@ -1924,6 +1931,22 @@
path = Views;
sourceTree = "<group>";
};
76F1D1936604D6A022E9AE90 /* Market */ = {
isa = PBXGroup;
children = (
76F1DADFD07E2941897FD2E1 /* SignOrders.swift */,
);
path = Market;
sourceTree = "<group>";
};
76F1D6E06C9FA1261851B222 /* Market */ = {
isa = PBXGroup;
children = (
76F1DE8ADA3176D0277EDF20 /* OrderSigningTests.swift */,
);
path = Market;
sourceTree = "<group>";
};
771A84782032343600528D28 /* Controllers */ = {
isa = PBXGroup;
children = (
@ -2195,7 +2218,7 @@
enabled = 0;
};
com.apple.iCloud = {
enabled = 1;
enabled = 0;
};
};
};
@ -2782,6 +2805,7 @@
291ED08D1F6F5F0A00E7E93A /* KeyStoreError.swift in Sources */,
29F1C83E1FEB5C91003780D8 /* EditTokensViewController.swift in Sources */,
296AF9A31F733AB30058AF78 /* WalletCoordinator.swift in Sources */,
76F1DA1A819D5543FF698AF1 /* SignOrders.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2848,6 +2872,8 @@
732E0F502022716700B39C1F /* LockEnterPasscodeCoordinatorTest.swift in Sources */,
29F114E91FA3EC9E00114A29 /* InCoordinatorTests.swift in Sources */,
2981F4731F8303E600CA6590 /* TransactionCoordinatorTests.swift in Sources */,
76F1D137B10D8309E513BBDD /* OrderSigningTests.swift in Sources */,
76F1D912AFEB21137B210FE5 /* SignOrders.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

@ -5,6 +5,22 @@
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"

@ -5,6 +5,22 @@
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2912CCF41F6A830700C6CBE3"
BuildableName = "Trust.app"
BlueprintName = "Trust"
ReferencedContainer = "container:Trust.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -78,7 +78,7 @@ open class EtherKeystore: Keystore {
@available(iOS 10.0, *)
func createAccount(with password: String, completion: @escaping (Result<Account, KeystoreError>) -> Void) {
DispatchQueue.global(qos: .userInitiated).async {
let account = self.createAccout(password: password)
let account = self.createAccount(password: password)
DispatchQueue.main.async {
completion(.success(account))
}
@ -180,7 +180,7 @@ open class EtherKeystore: Keystore {
}
}
func createAccout(password: String) -> Account {
func createAccount(password: String) -> Account {
let account = try! keyStore.createAccount(password: password)
let _ = setPassword(password, for: account)
return account
@ -294,7 +294,8 @@ open class EtherKeystore: Keystore {
return signMessage(formattedMessage, for: account)
}
func signMessage(_ message: String, for account: Account) -> Result<Data, KeystoreError> {
//this method is no good unless message is a plain string, should be replaced with signMessageData below
public func signMessage(_ message: String, for account: Account) -> Result<Data, KeystoreError> {
guard
let hash = message.data(using: .utf8)?.sha3(.keccak256),
let password = getPassword(for: account) else {
@ -310,6 +311,21 @@ open class EtherKeystore: Keystore {
}
}
public func signMessageData(_ message: Data?, for account: Account) -> Result<Data, KeystoreError> {
guard
let hash = message?.sha3(.keccak256),
let password = getPassword(for: account) else {
return .failure(KeystoreError.failedToSignMessage)
}
do {
var data = try keyStore.signHash(hash, account: account, password: password)
data[64] += 27
return .success(data)
} catch {
return .failure(KeystoreError.failedToSignMessage)
}
}
func signTransaction(_ transaction: SignTransaction) -> Result<Data, KeystoreError> {
guard let account = keyStore.account(for: transaction.account.address) else {
return .failure(.failedToSignTransaction)

@ -2,7 +2,7 @@
import Foundation
enum KeystoreError: LocalizedError {
public enum KeystoreError: LocalizedError {
case failedToDeleteAccount
case failedToDecryptKey
case failedToImport(Error)
@ -15,7 +15,7 @@ enum KeystoreError: LocalizedError {
case accountNotFound
case failedToSignMessage
var errorDescription: String? {
public var errorDescription: String? {
switch self {
case .failedToDeleteAccount:
return "Failed to delete account"

@ -15,7 +15,7 @@ protocol Keystore {
func importWallet(type: ImportType, completion: @escaping (Result<Wallet, KeystoreError>) -> Void)
func keystore(for privateKey: String, password: String, completion: @escaping (Result<String, KeystoreError>) -> Void)
func importKeystore(value: String, password: String, newPassword: String, completion: @escaping (Result<Account, KeystoreError>) -> Void)
func createAccout(password: String) -> Account
func createAccount(password: String) -> Account
func importKeystore(value: String, password: String, newPassword: String) -> Result<Account, KeystoreError>
func export(account: Account, password: String, newPassword: String) -> Result<String, KeystoreError>
func export(account: Account, password: String, newPassword: String, completion: @escaping (Result<String, KeystoreError>) -> Void)

@ -0,0 +1,42 @@
// Copyright SIX DAY LLC. All rights reserved.
import Foundation
//struct {
// byte32 contract-address-pad-with-leading-zeros;
// byte32 price-in-wei;
// byte32 expiry-in-unix-time;
// int[3] lot; # lot 2, lot 3, lot 4;
// byte65 signature1;
//}
public struct Order {
var price: BigInt?;
var ticketIndices: [Int]?;
var expiryBuffer: BigInt?;
var contractAddress: String?;
}
class MarketOrders
{
let batch : Batch
var baseURL : URL {
return URL(string: "https://i6pk618b7f.execute-api.ap-southeast-1.amazonaws.com/test/abc")!
}
var method: HTTPMethod {
return .post
}
var parameters: Any? {
return batch.requestObject
}
typealias response = Array<Order>;
func response(from resultObject: Any) throws -> Response {
return try batch.responses(from: object)
}
}

@ -0,0 +1,122 @@
import BigInt
import TrustKeystore
import Trust
public struct Order {
var price: [UInt8]
var ticketIndices: [UInt16]
var expiryBuffer: [UInt8]
var contractAddress: String
}
public struct SignedOrder {
var order : Order
var message : Data
var signature : String
}
extension String {
var hexa2Bytes: [UInt8] {
let hexa = Array(characters)
return stride(from: 0, to: count, by: 2).flatMap { UInt8(String(hexa[$0..<$0.advanced(by: 2)]), radix: 16) }
}
}
extension BinaryInteger {
var data: Data {
var source = self
return Data(bytes: &source, count: MemoryLayout<Self>.size)
}
}
extension Data {
var array: [UInt8] { return Array(self) }
}
public class SignOrders {
private let keyStore = try! EtherKeystore()
//takes a list of orders and returns a list of signature objects
func signOrders(orders : Array<Order>, account : Account) -> Array<SignedOrder> {
var signedOrders : Array<SignedOrder> = Array<SignedOrder>()
for i in 0...orders.count - 1 {
let message : [UInt8] = encodeMessageForTrade(price: orders[i].price,
expiryBuffer: orders[i].expiryBuffer, tickets: orders[i].ticketIndices,
contractAddress : orders[i].contractAddress)
let messageData = Data(bytes: message)
let signature = try! keyStore.signMessageData(messageData, for: account)
let signedOrder : SignedOrder = try! SignedOrder(order : orders[i], message: messageData,
signature : signature.description)
signedOrders.append(signedOrder)
}
return signedOrders
}
func encodeMessageForTrade(price : [UInt8], expiryBuffer : [UInt8],
tickets : [UInt16], contractAddress : String) -> [UInt8]
{
//ticket count * 2 because it is 16 bits not 8
let arrayLength: Int = 84 + tickets.count * 2
var buffer = [UInt8]()
buffer.reserveCapacity(arrayLength)
var priceInWei : [UInt8] = price
var expiry : [UInt8] = expiryBuffer
for _ in 0...31 - price.count {
//pad with zeros
priceInWei.insert(0, at: 0)
}
for i in 0...31 {
buffer.append(priceInWei[i])
}
for i in 0...31 - expiryBuffer.count {
expiry.insert(0, at: 0)
}
for i in 0...31 {
buffer.append(expiry[i])
}
//no leading zeros issue here
var contractAddr = contractAddress.hexa2Bytes
for i in 0...19 {
buffer.append(contractAddr[i])
}
var ticketsUint8 = uInt16ArrayToUInt8(arrayOfUInt16: tickets)
for i in 0...ticketsUint8.count - 1 {
buffer.append(ticketsUint8[i])
}
return buffer
}
func uInt16ArrayToUInt8(arrayOfUInt16: [UInt16]) -> [UInt8]
{
var arrayOfUint8 : [UInt8] = [UInt8]()
for i in 0...arrayOfUInt16.count - 1 {
var UInt8ArrayPair = arrayOfUInt16[i].bigEndian.data.array
arrayOfUint8.append(UInt8ArrayPair[0])
arrayOfUint8.append(UInt8ArrayPair[1])
}
return arrayOfUint8
}
func bufferToString(buffer : [UInt8]) -> String
{
var bufferString : String = "";
for i in 0...buffer.count - 1 {
bufferString += String(buffer[i])
}
return bufferString
}
}

@ -4,26 +4,7 @@
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:eps2.app.link</string>
<string>applinks:eps2-alternate.app.link</string>
</array>
<key>com.apple.developer.default-data-protection</key>
<string>NSFileProtectionComplete</string>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.$(CFBundleIdentifier)</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudDocuments</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>iCloud.$(CFBundleIdentifier)</string>
</array>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
</dict>
</plist>

@ -19,7 +19,7 @@ class EtherKeystoreTests: XCTestCase {
let keystore = FakeEtherKeystore()
let password = "test"
let account = keystore.createAccout(password: password)
let account = keystore.createAccount(password: password)
let retrivedPassword = keystore.getPassword(for: account)
XCTAssertEqual(password, retrivedPassword)
@ -138,7 +138,7 @@ class EtherKeystoreTests: XCTestCase {
let keystore = FakeEtherKeystore()
let password = "test"
let account = keystore.createAccout(password: password)
let account = keystore.createAccount(password: password)
let result = keystore.export(account: account, password: password, newPassword: password)
@ -155,7 +155,7 @@ class EtherKeystoreTests: XCTestCase {
XCTAssertNil(keystore.recentlyUsedWallet)
let account = Wallet(type: .real(keystore.createAccout(password: password)))
let account = Wallet(type: .real(keystore.createAccount(password: password)))
keystore.recentlyUsedWallet = account
@ -169,7 +169,7 @@ class EtherKeystoreTests: XCTestCase {
func testDeleteAccount() {
let keystore = FakeEtherKeystore()
let password = "test"
let wallet = Wallet(type: .real(keystore.createAccout(password: password)))
let wallet = Wallet(type: .real(keystore.createAccount(password: password)))
XCTAssertEqual(1, keystore.wallets.count)

@ -40,7 +40,7 @@ struct FakeKeystore: Keystore {
//TODO: Implement
}
func createAccout(password: String) -> Account {
func createAccount(password: String) -> Account {
//TODO: Implement
return .make(address: .make())
}

@ -5,6 +5,8 @@ import BigInt
import XCTest
class EtherNumberFormatterTests: XCTestCase {
let fullFormatter = EtherNumberFormatter(locale: Locale(identifier: "en_US_POSIX"))
let shortFormatter: EtherNumberFormatter = {
var formatter = EtherNumberFormatter(locale: Locale(identifier: "en_US_POSIX"))

@ -0,0 +1,43 @@
import XCTest
@testable import Trust
import TrustKeystore
import RealmSwift
import BigInt
class OrderSigningTests : XCTestCase {
func testSigningOrders() {
var testOrdersList : Array<Order> = Array<Order>()
var keyStore = FakeEtherKeystore()
//set up test orders
var indices = [UInt16]()
indices.append(1)
indices.append(2)
var price = [UInt8]()
price.append(1) //price is 1 wei
var expiry = [UInt8]()
expiry.append(0)
let testOrder1 = Order(price : price, ticketIndices: indices,
expiryBuffer: expiry, contractAddress : "d9864b424447B758CdE90f8655Ff7cA4673956bf")
testOrdersList.append(testOrder1)
let signOrders = SignOrders()
var account = keyStore.createAccount(password: "deleteOnceWorking")
print(account)
var signedOrders : Array<SignedOrder> = signOrders.signOrders(orders: testOrdersList, account: account)
var signature = try! keyStore.signMessageData(signedOrders.first?.message, for: account).dematerialize().hexString
print("v: " + Int(signature.substring(from: 128), radix: 16)!.description)
print("r: 0x" + signature.substring(to: 64))
print("s: 0x" + signature.substring(from: 64))
print(signedOrders.description)
}
}

@ -1,8 +1,7 @@
// Copyright SIX DAY LLC. All rights reserved.
import XCTest
@testable import Trust
class TrustTests: XCTestCase {
}

Loading…
Cancel
Save