Интеграция web3.js в нативные приложения для iOS и Android имеет проблемы.
У меня возникают трудности с интеграцией web3.js в собственное мобильное приложение (iOS и Android) , было бы разумно использовать облачный сервер и npm установить web3 и позволить мобильному приложению подключаться к этому экземпляру облачного сервера, чтобы совершать все вызовы к развернутому Смарт-контракт?
Единственная проблема, которую я вижу в этом, заключается в том, что он бросает вызов одноранговой архитектуре блокчейна, имея облачный сервер посередине.
Вы можете использовать Infura APIS с мобильного устройства для локального взаимодействия с блокчейном https://blog.infura.io/getting-started-with-infura-28e41844cc89 , чтобы вам не нужно было настраивать собственный прокси-сервер .
Вот элегантная функциональность web3js в Swift. Собственный синтаксический анализ ABI и взаимодействие со смарт-контрактами
Вот пример отправки транзакции:
TransactionsService().prepareTransactionForSendingEther(destinationAddressString: destinationAddress, amountString: amount, gasLimit: 21000) { (result) in
switch result {
case .Success(let transaction):
guard let gasPrice = self.gasPriceTextField.text else { return }
guard let gasLimit = self.gasLimitTextField.text else { return }
guard let name = self.walletName else { return }
let dict:[String:Any] = [
"gasPrice":gasPrice,
"gasLimit":gasLimit,
"transaction":transaction,
"amount":amount,
"name": name,
"fromAddress": self.walletAddress!,
"toAddress": destinationAddress]
self.sendFunds(dict: dict, enteredPassword: withPassword)
case .Error(let error):
var textToSend = ""
if let error = error as? SendErrors {
switch error {
case .invalidDestinationAddress:
textToSend = "invalidAddress"
default:
break
}
}
showErrorAlert(for: self, error: error)
}
}
Исмаэль