Swift དང་ iOS
Swift SDK འདི་ཡར་ཐུག་ལུ་ལཱ་འབད་སའི་ས་ཁོངས་ནང་ལས་བཏང་ཡོདཔ་ཨིན། འདི་གིས་ IrohaSwift Swift སྦ་སྒོར་འདི་ IrohaSwift/ གི་འོག་ལུ་ཨིན། ཁོ་གི་སྦ་སྒོའི་ཁ་བྱང་འདི་གིས་ དཔེ་མཛོད་ཁང་གི་ཐོན་སྐྱེད་གསུམ་ལུ་ ངོས་འཛིན་འབདཝ་ཨིན། IrohaSwift, IrohaSwiftMobileTransports དང་ IrohaSwiftTransferUI དེ་ལས་ iOS 15+དང་ macOS 12+ ལུ་ དམིགས་གཏད་འབད་དོ་ཡོདཔ་ད་ ལག་ཆས་ཚུ་གིས་ Swift 5.9 ཡིན།
ཕབ་ལེཊ་འདི་ རང་ལུགས་ཀྱི་ NoritoBridge ཌའི་ལོག་ དམིགས་གཏད་ལས་བརྟེན་ཨིན། ཕབ་ལེཌ་གི་གསལ་སྒྲགས་དེ་ བཟོ་སྐྲུན་མ་འབད་བའི་ཧེ་མར་ ../dist/NoritoBridge.xcframework སྒྲིང་སྒྲི་བཟོཝ་ཨིན། དེ་ལས་ གནས་སྐབས་ཀྱི་ རྟགས་མཚན་ཚུ་ བཀྲམ་སྤེལ་འབད་མ་ཚུགས་པའི་སྐབས་ལུ་ བྱ་སྟབས་མ་བདེཝ་དང་འབྲེལ་བའི་ཅ་ཆས་ ཡང་ན་ Connect crypto ལྕགས་ལམ་ཚུ་གིས་ མཐུད་སྦྲེལ་འབད་མི་འཛོལ་བ་ཚུ་ བཀལ་དོ་ཡོདཔ་ཨིན།
Swift སྦ་སྒོའི་འཛིན་སྐྱོང་པ་
སྒྲིག་གཞི་འདི་སེལ་འཐུ་འབད་ཡོད་པའི་ ལཱ་གི་ས་ཁོངས་དང་ཕྱདཔ་ད་བཟོ་སྐྲུན་འབད་བའི་སྐབས་ལུ་ ས་གནས་ཀྱི་ IrohaSwift/ སྦ་སྒོའི་ཐོ་ཡིག་ནང་ SwiftPM ལུ་ཐོ་བཀོད་འབད། Package.swift གིས་ལག་ལེན་འཐབ་མི་སྦ་སྒོར་གྱི་ངོ་རྟགས་དེ་ IrohaSwift ཨིན་པ།
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 ལུ་ཐོ་བཀོད་འབདཝ་ཨིན།
ཕབ་ལེཊ་འདི་སེལ་འཐུ་མ་ཚར་བའི་ཧེ་མར་ ཐོ་བཀོད་འབད་ཡོད་པའི་བསྒང་ལས་ སྒྲིག་འཇུག་གི་གནས་གོང་ལུ་ མཐུད་སྦྲེལ་འབད་ནི།
cd /path/to/iroha
make bridge-xcframeworkའདི་གིས་ dist/NoritoBridge.xcframework ཐོན་སྐྱེད་འབདཝ་ཨིན། IrohaSwift/Package.swift གིས་འདི་ ../dist/NoritoBridge.xcframeworkཟེར་སླབ་ཨིན།
CocoaPods
གཞི་རྟེན་ code འདི་ནང་ལུ་ཡང་ཡོདཔ་ཨིན། IrohaSwift/IrohaSwift.podspec. འདི་གིས་གསལ་བསྒྲགས་འབདཝ་ཨིན། IrohaSwift ཀེ་བ་ཚུ་ Swift ༥.༩ དང་ iOS ༡༥ ཨིན། གློག་རིག་དཔྱད་ཡིག་འདི་ pulls Swift ལས་འཛིན་གྱི་ཡིག་མཛོད་ནང་ལས་ འབྱུང་ཁུངས་; རང་ལུགས་ཀྱི་གཞུང་ལམ་དེ་ ད་ལྟོ་ཡང་ཡོད་དགོཔ་མ་ཚད་ འབྲེལ་མཐུད་འབད་ཡོདཔ་ད་ བརྒྱུད་འཕྲིན་ཚུ་ ཨེབ་གཏང་འབད་ནི་ལུ་ཨིན། ཨེཌི་༢༥༥༡༩ གྱི་མིང་ཐོ་བཀོད་དང་ Connect crypto
མགྱོགས་པ་རང་འགོ་བཙུགས་
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 ཀློག་རྐྱབས་ཅིག་ལུ་ བརྟག་དཔྱད་འབད་
ཁྱོད་ཀྱིས་ HTTP བརྟག་ཞིབ་འདི་འགོ་དང་པ་འབད་ཞིནམ་ལས་ སེལ་འཐུ་འབད། ཡང་ན་ སི་མུལ་ཊར་འདི་གིས་ མི་མང་གི་ Taira མཐའ་མཇུག་ཐིག་ལུ་ལྷོད་ཚུགས་མི་འདི་ ངེས་གཏན་བཟོ་བར་འབདཝ་ཨིན།
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 གྲོགས་རམ་འབད་མི་ཚུ་ ལག་ལེན་འཐབ་ཨིན། འདི་ཚུ་གིས་ རང་བཞིན་གྱི་ Bridge-backed transaction encoder ཟེར་འབད།
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 ལག་ཁྱེར་མ་བཙུགས་པའི་ཧེ་མ་
རང་ལུགས་ཀྱི་ Escrow
Swift གིས་ཚོང་ཁྲོམ་དང་མིང་མ་ཤེསཔ་གི་རྒྱབ་སྐྱོར་གྱི་བཀོད་རྒྱ་ཚུ་ བཟོ་ནི་ཨིནམ་ད་ Norito JSON གིས་ NativeEscrowInstructionBuilders ཡང་ན་ དེ་འདྲ་མཉམ་ཨིན་པའི་ IrohaSDK.build*Escrow* ཆ་རོགས་ཚུ་གི་ཐོག་ལས་ ཕན་ཐོགས་ཅན་ཅིག་སྦེ་བཟོ་དོ་ཡོདཔ་ཨིན། དཔེ་འབད་བ་ཅིན་ Native Asset Escrow ལུ་བལྟ་ཚུགས། མིང་མ་ཤེསཔ་ཀྱི་རྒྱབ་སྐྱོར་ Fields དང་ རྩོད་གཞི་སེལ་ནིའི་ཆོག་ཐམ་ token འདི་ཡང་མཐོང་འོང་།
རྟགས་མཚན་བཀོད་ཐབས།
Keypairའདི་ Ed25519 གི་ལྕོགས་གྲུབ་ API ཨིན། གཞན་ཨལ་གེ་རི་ཏམ་ཚུ་གི་དོན་ལུ་ IrohaSDK བཟོ་ཞིནམ་ལས་ defaultSigningAlgorithm དང་གཅིག་ཁར་དང་ generateSigningKey() ཡང་ན་ signingKey(fromSeed:) ལག་ལེན་འཐབ་དགོ།
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. ཨེཌ་༢༥༥༡༩ གི་ལམ་གྱི་ཕྱི་ཁར་ རང་སོའི་གཞུང་སྒོ་གི་ རྒྱབ་སྐྱོར་འདི་ དགོཔ་ཨིན།
འབྲེལ་མཐུད་འབད་
Connect client འདི་ Swift source ལུ་ལག་ལེན་འཐབ་སྟེ་ཡོདཔ་ད་ NoritoBridge གིས་རྒྱབ་སྐྱོར་འབད་ཡོད་པའི་ crypto དང་ frame codecs:
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 ཐོན་ཁུངས་འདི་ ད་ལྟོ་གི་ནང་ཚུགསཔ།
ToriiClientHTTP རྩིས་ཁྲ་ཚུ་གི་དོན་ལུ་ གྲོགས་རམ་འབད་མི་ཚུ་, རྒྱུ་དངོས་ཚུ་, མིང་རྟགས་ཚུ་, ཞིབ་འཚོལ་གྱི་ཤོག་ལེབ་ཚུ་, RWA, ལས་འཆམ་, multisig, གཞུང་སྐྱོང་, ཐོ་བཀོད་ཚུ་, ཌེ་ཊའི་གི་ཐོབ་ཐངས་, གསང་བའི་རྒྱུ་དངོས་ཚུ་, མཚམས་འཇོག་ / དུས་རྒྱུན་གནས་སྟངས་, གསོ་བའི་གནས་ཚུལ།, མེ་ཊིག་སི་དང་ SSE རྒྱུགས་ཆུའི་དོན་ལུ་IrohaSDKཚོང་འབྲེལ་བཟོ་མི་ཚུ་དང་ ཕྱིར་འབུད་འབད་ནི་ལུ་ རྒྱབ་སྐྱོར་འབད་མི་ཚུ་, མིན་ཏིག་, མེ་སྤར་གཏང་ནི་, གདོང་ཁེབས་, ཕྱིར་འབུདཔ་མེད་མི་, ZK ཕྱིར་འབུབ་, ZK རྒྱུ་དངོས་གི་ཐོ་ཡིག་, metadata, ངོ་རྐྱང་ཐོབ་ཐངས་ཚུ་, multisig ཐོ་བཀོད་དང་ ལམ་སྟོན་ཚུ་གི་དོན་ལུ་PendingTransactionQueueདང་FilePendingTransactionQueueབརྒྱུད་དེ་ ཕྱིར་ཚོང་གི་གྲལ་རིམ་རྒྱབ་སྐྱོར་མ་བྱིན་པར་བཞག་ཡོདཔ་ཨིན།- རྩིས་ཁྲ་ཁ་བྱང་དང་ I105 གི་རྒྱབ་སྐྱོར་འབད་མི་ཚུ་
AccountAddressདང་AccountId - Ed25519, secp256k1, ML-DSA, BLS, GOST དང་ SM2 གི་རྟགས་བཀོད་འབད་ཐངས་ཚུ་ དགོས་མཁོ་ཡོད་པ་ཅིན་ རང་བཞིན་གྱི་གཞུང་ལམ་ རྒྱབ་སྐྱོར་དང་གཅིག་ཁར་ཨིན།
- ཚོང་འབྲེལ་གྱི་ས་སྒོ་གི་དོན་ལུ་ རང་སོའི་གཏེར་ཁའི་བརྡ་སྟོན་ལག་ལེན་བཟོ་སྐྲུན་འབད་མི་ཚུ་དང་ ངོ་མ་ཤེས་པའི་གཏེར་ཁའི་དོན་ལུ་
- WebSocket མཐུད་སྦྲེལ་འབད་ཐབས། སྒྲིག་གཞི་, crypto, session, queue, replay, and diagnostics assistants
- Kagemusha གྲ་སྒྲིག་འབད་ནི་དང་ ཨེབ་གཏང་འབད་ཡོད་པའི་ལོག་སྣོད་དང་གླར་ལེན་, ལག་ལེན་འཐབ་ནིའི་གནས་གོང་, ཐོ་བཀོད་, མཉམ་འབྲེལ་མཐུན་རྐྱེན་, ངོས་ལེན་ དེ་ལས་ QR རྒྱུན་ལམ་གྱི་རྣམ་ཐར།
- SoraFS ཌའི་ཊ་གི་ཐོབ་ཐངས་དང་ བརྟག་དཔྱད་འབད་ནི་ལུ་ གྲོགས་རམ་འབད་མི་ཚུ་
API དཔེ་སྟོན་ཚུ་
ལག་ལེན་འཐབ་ནི་ IrohaSwift/Sources/IrohaSwift སྤྱིར་བཏང་ལག་ལེན་གྱི་དོན་ལུ་དང་ IrohaSwift/Tests/IrohaSwiftTests བརྟག་དཔྱད་འབད་ཡོད་པའི་ལག་ལེན་གྱི་དཔེ་སྟོན་ཚུ་གི་དོན་ལུ་ འདྲ་བཤུས་ཀྱི་འགྱུར་བཅོས་ནང་ལས་ཨིན།
གཞི་རྟེན་ཁ་བྱང་ཚུ་
IrohaSwift/Package.swiftIrohaSwift/IrohaSwift.podspecIrohaSwift/Sources/IrohaSwift/ToriiClient.swiftIrohaSwift/Sources/IrohaSwift/TxBuilder.swiftIrohaSwift/Sources/IrohaSwift/TransactionEncoder.swiftIrohaSwift/Sources/IrohaSwift/ConnectClient.swiftIrohaSwift/Sources/IrohaSwift/ConnectSession.swift