mghnmtt / near-api-swift

Interact with NEAR blockchain from iOS and OS X apps using Swift

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nearclientios

Build Status Version License MIT Platform

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Usage

import nearclientios
class ViewController: UIViewController, WalletSignInDelegate {
  private var walletAccount: WalletAccount?
  private var near: Near?

  override func viewDidLoad() {
    super.viewDidLoad()
    let keyStore = KeychainKeyStore(keychain: .init(service: "example.keystore"))
    let config = NearConfig(
      networkId: "testnet", // "default" for mainnet 
      nodeUrl: URL(string: "https://rpc.testnet.near.org")!, // "https://rpc.mainnet.near.org" for mainnet
      masterAccount: nil,
      keyPath: nil,
      helperUrl: nil,
      initialBalance: nil,
      providerType: .jsonRPC(URL(string: "https://rpc.testnet.near.org")!), // "https://rpc.mainnet.near.org" for mainnet
      signerType: .inMemory(keyStore),
      keyStore: keyStore,
      contractName: nil,
      walletUrl: "https://wallet.testnet.near.org" // "https://wallet.near.org" for mainnet
    )
    near = try! Near(config: config)
    walletAccount = try! WalletAccount(near: near!, authService: DefaultAuthService.shared)
    let appName = UIApplication.name ?? "signInTitle"
    DefaultAuthService.shared.walletSignIn = self
    try! await walletAccount!.requestSignIn(contractId: nil, title: appName, presentingViewController: self)
  }
  func completeSignIn(url: URL) async {
    try! await walletAccount?.completeSignIn(url: url)
    MainActor.run {
      //do any additional UI work on the main thread after sign in is complete
    }
  }
}

Requirements

nearclientios makes use of Swift's async/await and thus requires iOS 13.

Installation

nearclientios is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'nearclientios'

Author

NEAR Inc

License

nearclientios is available under the MIT license. See the LICENSE file for more info.

About

Interact with NEAR blockchain from iOS and OS X apps using Swift

License:MIT License


Languages

Language:Swift 98.5%Language:Ruby 1.3%Language:Objective-C 0.2%