Skip to content

Swift болон iOS ​

Үндсэн хуулийн Swift SDK эргэлтийн ажлын хэсгээр шилжүүлсэн нь IrohaSwift Swift дэргэдэх багц IrohaSwift/. Тус багцын манфист нь гурван номын сан бүтээгдэхүүнийг тодорхойлдогIrohaSwift, IrohaSwiftMobileTransports, болон IrohaSwiftTransferUI болон iOS 15+ болон macOS 12+-д чиглэсэн Swift тоног төхөөрөмж 5.9.

Пакет нь үндсэн NoritoBridge бинар зорилтоос хамааралтай. Пакетын тогтоол ../dist/NoritoBridge.xcframework-ийг бүтээн байгуулалтад хүрэхийн өмнө баталгаажуулдаг бөгөөд төлөөлөгч символуудыг борлуулахгүй үед транзакцын эсвэл Connect крипто замыг дампуулж чадахгүй алдаа гаргадаг .

Swift Барилгын менежер ​

Хөдөлмөрийн орон зайг шалгахдаа SwiftPM -ийг орон нутгийн IrohaSwift/ багцын жагсаалтад тодруулъя. Package.swift-ийн хэрэглэсэн багцын тодорхойлолт нь IrohaSwift:

swift
dependencies: [
    .package(name: "IrohaSwift", path: "/path/to/iroha/IrohaSwift")
],
targets: [
    .target(
        name: "YourApp",
        dependencies: [
            .product(name: "IrohaSwift", package: "IrohaSwift")
        ]
    )
]

Таны аппликейшнүүдийн замыг зохицуу. Одоогийн examples/ios/ConnectMinimalApp замыг яг одоо байгаагаар дуулгаж болохгүй; энэ манфист нь ../../IrohaSwift-ийг examples/IrohaSwift-д тогтоох болно.

Пакетыг шийдвэрлэхээс өмнө буудлыг ажлын байрны гарал дээр байдаг эсэхийг шалгаарай:

bash
cd /path/to/iroha
make bridge-xcframework

Энэ нь dist/NoritoBridge.xcframework үйлдвэрлэдэг; IrohaSwift/Package.swift үүнийг ../dist/NoritoBridge.xcframework гэж дурддаг.

CocoaPods ​

Үндсэн код нь мөн IrohaSwift/IrohaSwift.podspec. Энэ нь IrohaSwift цогц, Swift 5.9 болон iOS 15. Podspec нь татдаг Swift гол хадгаламжийн эх үүсвэрүүд; төлөөлөгчийн гүүр одоо ч байх ёстой бөгөөд гүйлгээний кодлохын тулд холбогдсон байх ёстой. Эд25519-ийн бус гарын үсэг зурах, Connect крипто.

Удахгүй эхлэх ​

swift
import Foundation
import IrohaSwift

let torii = ToriiClient(baseURL: URL(string: "http://127.0.0.1:8080")!)
let sdk = IrohaSDK(toriiClient: torii)

let keypair = try Keypair.generate()
let accountId = try keypair.accountId()

if #available(iOS 15.0, macOS 12.0, *) {
    let balances = try await torii.getAssets(accountId: accountId)
    print("balances:", balances)
}

Taira уншигчдаа л үзээрэй ​

Тоног төхөөрөмж эсвэл симулятор нь Taira олон нийтэд хүрэх боломжтой гэдгийг баталгаажуулах энгийн HTTP сондаар эхэлнэ:

swift
import Foundation

if #available(iOS 15.0, macOS 12.0, *) {
    let url = URL(string: "https://taira.sora.org/status")!
    let (data, response) = try await URLSession.shared.data(from: url)

    if let http = response as? HTTPURLResponse {
        print("status:", http.statusCode)
    }
    print(String(decoding: data, as: UTF8.self))
}

Үүнтэй ижил хэрэглэж болно URLSession шалгалт https://taira.sora.org/v1/assets/definitions?limit=5 Хэрэв та баригдаж байгаа бол UI болон заншил дахин туршиж үзээрэй. IrohaSDK хэрэгсэл аюулгүй хадгаламжаас гарын үсэг зурагч материалыг татаж, бүртгэлээ санхүүжүүлсний дараа л тусламж үзүүлнэ. Taira.

Транзакцын бүтээн байгуулалт хийх, өргөн мэдүүлэхэд IrohaSDK туслах хэрэглэнэ. Эдгээр нь дотоодын цахилгаан дэмжлэгтэй транзакцийн кодлогч гэж нэрлэдэг:

swift
let transfer = TransferRequest(
    chainId: "00000000-0000-0000-0000-000000000000",
    authority: accountId,
    assetDefinitionId: "66owaQmAQMuHxPzxUN3bqZ6FJfDa",
    quantity: "1",
    destination: accountId,
    description: "demo",
    feePayment: .authority(chargeLimits: [], gasLimit: nil)
)

if #available(iOS 15.0, macOS 12.0, *) {
    let status = try await sdk.submitAndWait(
        transfer: transfer,
        keypair: keypair
    )
    print(status.content.status.kind)
}

TransferRequest, MintRequest, BurnRequest, ShieldRequest, болон UnshieldRequest санхүүгийн тайланг баталгаажуулах IDs ба санхүүгийн бус Base58 хөрөнгийн тодорхойлолт IDs гарын үсэг зурхаасаа өмнө.

Үндэсний хадгаламж ​

Swift зах зээлийн байршил болон нууцлан хадгаламжлах чиглэлийг . Norito JSON хэрэглээний ачаалл NativeEscrowInstructionBuilders эсвэл ижил төстэй IrohaSDK.build*Escrow* Хөдөлмөрийн туслагчид. Тухайн хөрөнгийн хяналт тавих Жишээ нь, нууцлагдсан баталгааны талбай болон маргаан шийдвэрлэх зөвшөөрлийн тэмдэгт.

Гарын үсэг зурах ​

Keypair нь Ed25519 тохиромжтой API. Бусад алгоритмээр IrohaSDK-ийг defaultSigningAlgorithm -тэй барьж, generateSigningKey() эсвэл signingKey(fromSeed:) -ийг ашиглах:

swift
let pqSdk = IrohaSDK(
    baseURL: torii.baseURL,
    defaultSigningAlgorithm: .mlDsa
)
let signingKey = try pqSdk.generateSigningKey()

Үндсэн хуулийн SigningAlgorithm enum нь одоогийн Ed25519, secp256k1-ийг багтааж байна, BLS энгийн болон жижиг хэлбэрүүд, ML-DSA, GOST R 34.10-2012 дахь параметрний багц, SM2. Эд25519 зөөврийн замын гаднах нутгийн гүүрний дэмжлэг шаардлагатай.

Холбоолуул ​

Connect үйлчлүүлэгчийг Swift эх үүсвэрийн хэрэгсэлээр, NoritoBridge дэргэдэх крипто болон төхөөрөмжийн кодекүүдээр хэрэгжүүлж байна:

swift
let sessionID = Data(repeating: 0, count: 32) // replace with the session bytes
let sid = "<session-id-from-/v1/connect/session>"
let request = try ConnectClient.makeWebSocketRequest(
    baseURL: URL(string: "https://node.example")!,
    sid: sid,
    role: .app,
    token: "<token>"
)

let client = ConnectClient(request: request)
await client.start()

let session = ConnectSession(sessionID: sessionID, client: client)
let keyPair = try ConnectCrypto.generateKeyPair()

ConnectSession нь нээлт болон хаах хяналт, шифрлэгдсэн хуудас уншдаг, чиглэлийн товчоо, урсгалын хяналтын систем, үйл явдлын урсгал, тэнцвэрлэх урсгал, оношилгооны сэтгүүлийг удирдаж байна.

Одоогоор хамааралтай ​

Swift эх сурвалж нь одоогийн байдлаар:

  • ToriiClient HTTP бүртгэл, хөрөнгө, нууц үсэг, хайгуулын хуудсууд, RWA, гэрээ, олон талт, засаглал, захиалг, өгөгдлийн хүртээмж, нууц эд хөрөнгө, түймрийн / гүйлгээний цаг үеийн байдал, эрүүл мэнд, үзүүлэлтүүд, SSE урсгал
  • IrohaSDK гүйлгээний бүтээн байгуулагчид, шилжүүлэн суулгах, мынтлах, шатаах, хамгаалалттай, хамгаалалгүй, ZK шилжүүлэх, ZK хөрөнгийн бүртгэл, метадэтгэмжлэл, тодруулгын шаардлагууд, олон тамгын бүртгэл, засаглалын заавар
  • PendingTransactionQueue болон FilePendingTransactionQueue замаар гүйлгээний шуурхайн дэмжлэг хүлээлттэй байна
  • AccountAddress болон AccountId дамжуулан бүртгэлийн хаяг, I105 туслах
  • Ed25519, secp256k1, ML-DSA, BLS, GOST болон SM2 гарын үсэг зурах дэлгэцүүд, шаардлагатай тохиолдолд үндэсний гүүрний дэмжлэгтэй
  • зах зээлийн зориулалтаар нөөц ачаалал барьдаг, үл тодруулсан хадгаламж олгогч
  • WebSocket, зураг, крипто, хуралдаан, шуурхай, дахин тоглолт, оношилгооны туслалцааг холбоно
  • Кагемушагийн бэлэн байдал, цахим хувилбар болон төлбөр тооцоо, үйл ажиллагааны байдал, тэмдэглэл, дундаж багц, хүлээн зөвшөөрөл, QR урсгалын загварууд
  • SoraFS, өгөгдлийн хүртээмжтэй байдал, хяналтын холбооны туслах

API Жишээ нь: ​

Нийтийн хэрэгжилтэд IrohaSwift/Sources/IrohaSwift болон ижил эх үүсвэрийн шинэчилсэн найруулгын ашиглалтын шинжилгээний жишээнүүдэд IrohaSwift/Tests/IrohaSwiftTests-ийг ашиглана.

Эх сурвалж ​

  • IrohaSwift/Package.swift
  • IrohaSwift/IrohaSwift.podspec
  • IrohaSwift/Sources/IrohaSwift/ToriiClient.swift
  • IrohaSwift/Sources/IrohaSwift/TxBuilder.swift
  • IrohaSwift/Sources/IrohaSwift/TransactionEncoder.swift
  • IrohaSwift/Sources/IrohaSwift/ConnectClient.swift
  • IrohaSwift/Sources/IrohaSwift/ConnectSession.swift