我试着去整合web3js与Trezor在松露开发网络或使用设有通往Ropsten测试网络.
我们的想法是使用硬件钱包签署交易,然后使用web3js发送原始交易
我得到了我们没有平衡来进行交易,可能是因为web3js没有使用10个松露帐户中的一个并使用不在我的本地网络中的trezor地址.
在ropsten我有一些醚,我得到"无效地址"
有没有办法使用web3js将已签名的交易(使用trezor)发送到松露开发网络?我的意思是,有没有办法将trezor地址包含在松露网络中?
松露的情况在这里有更详细的解释,但问题可以概括为" 有没有办法将硬件钱包纳入松露开发网络? ":https://github.com/trufflesuite/truffle/issues/973
使用ropsten我已经设法发送一个事务并在回调中接收一个事务哈希,但如果我们查询该事务,我们得到该事务不存在..所以..这怎么可能?
我也尝试将合同部署到Ropsten,现在我在调用智能合约函数时得到"无效地址".也许签名功能错了?有人可以将Trezor交易登录与web3js集成吗?
你们看到我们遵循的签名和发送过程中有什么问题吗?也许R,V和S参数处理有问题..
另一个重要的事情是我使用https://github.com/ethereumjs/ethereumjs-tx来创建原始事务
web3js,truffle和trezzor中发布的问题可以提供更多信息:
亲切的问候
trezorLogin = async()=> {
let trezor= await this.getTrezor();
// site icon, optional. at least 48x48px
let hosticon = 'https://doc.satoshilabs.com/trezor-apps/_images/copay_logo.png';
// server-side generated and randomized challenges
let challenge_hidden = '';
let challenge_visual = '';
//use anonimous functions on callback otherwise returns cross origin errors …Run Code Online (Sandbox Code Playgroud) 我注意到,在不同版本的Internet Explorer中,当输入的值被js函数更改时,不会捕获onchange事件,这种行为在其他浏览器(如Mozilla或Chrome)中不会发生.
稍微调查一下,我发现onchange当js改变值时,IE 中的正确操作无法保证:
示例(在IE上测试):
function onchangeRequest(){
console.log('onchange fired');
}
function changeValue (input){
input.value += "hello"
}Run Code Online (Sandbox Code Playgroud)
<h4> focus lost doesnt invoke onchangeRequest() </h4>
<input id="valueInput" onkeyup="changeValue(this);" onchange="onchangeRequest();" />
<h4> focus lost invokes onchangeRequest() </h4>
<input id="valueInput" onchange="onchangeRequest();" />Run Code Online (Sandbox Code Playgroud)
我还没有找到令人信服的解释,说明为什么IE无法正确解决这些问题.这是我们必须处理的"已知错误"吗?是否有任何官方参考声称IE不保证onchange事件的正确行为?
讨论和答案后的简要总结:
使用EXPO sdk,如果没有在android中授予FINE_LOCATION,则无法获取设备位置.FINE_LOCATION是获取位置的唯一方法,因此,您无法获得hardware.network.location.这意味着:使用android> 6,您无法使用WIFI /移动网络获取当前位置,您必须启用位置.
Expo github讨论: https ://github.com/expo/expo/issues/1339
最初的问题:
我正在使用expo和react-native-maps工作在本机应用程序 上,我需要获得用户当前位置的纬度和纵向.
即时通讯使用navigator.geolocation API为
打开GPS我没有问题,但我需要根据网络提供商获得没有GPS的当前位置.
问题是,当应用程序在andoiod> 6上使用expo运行时,我收到此错误:
21:50:53:在449ms完成构建JavaScript包21:50:55:禁用位置服务 - node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:80:57 in - node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:347:19 in __invokeCallback - ...来自框架内部的4个堆栈帧
在IO和android <= 5中,它运行良好.
这是组件的代码:
class MyComponent extends Component {
componentWillMount = () => {
this.getCurrentLocation();
}
getCurrentLocation = () =>
navigator.geolocation.getCurrentPosition(
(position) => {
let currentUserPosition = position.coords;
alert(JSON.stringify(currentUserPosition));
},
(error) => {
console.log(error);
},
{
enableHighAccuracy: false,
timeout: 20000, …Run Code Online (Sandbox Code Playgroud) 我使用这个主要依赖项工作在本机应用程序上:
我正在使用这个package.json:
"dependencies": {
"expo": "23.0.4",
"humps": "^2.0.0",
"install": "^0.10.1",
"lodash": "^4.17.4",
"native-base": "^2.3.5",
"react": "16.0.0",
"react-native": "0.50.4",
"react-native-extend-indicator": "^0.1.2",
"react-native-keyboard-aware-scroll-view": "^0.4.2",
"react-native-maps": "^0.19.0",
"react-native-maps-directions": "^1.3.0",
"react-native-modal-datetime-picker": "^4.13.0",
"react-native-qrcode": "^0.2.6",
"react-native-router-flux": "4.0.0-beta.24",
"react-native-svg-uri": "^1.2.3",
"react-native-swiper": "^1.5.13",
"react-native-vector-icons": "^4.4.2",
"react-navigation-redux-debouncer": "^0.0.2",
"react-redux": "^5.0.6",
"redux": "^3.7.2",
"redux-logger": "^3.0.6",
"redux-thunk": "^2.2.0",
"swagger-client": "2.1.32"
}
Run Code Online (Sandbox Code Playgroud)
应用程序正在使用expo所以我使用以下命令安装依赖项:
然后运行应用程序
我工作正常,因为我想添加一个新的依赖项,所以我删除了node_modules文件夹和yarn.lock文件,添加了新的依赖项并再次执行yarn安装.
之后,我在打开应用程序时遇到此错误:
TypeError:undefined不是函数(评估'addListener')
它与react-navigation有关,但我使用的是react-native-router-flux 4.0.0-beta.24,它在内部使用react-navigation ^ 1.0.0-beta.19.
我最近注意到使用react-navigation的人对此有一些麻烦(https://github.com/react-navigation/react-navigation/issues/3416)但使用beta.28版本.
如果我回到之前的node_modules文件夹(从垃圾箱)我的应用程序运行良好,所以..可能是因为我的package.json 的^符号的某些依赖性不再兼容..也许thunk或反应本机路由器与我的反应本机版本的通量.
有任何想法吗?
当我使用react thunk中间件时,这是代码的一部分:
import {applyMiddleware, …Run Code Online (Sandbox Code Playgroud) react-native redux redux-thunk react-native-router-flux react-navigation
react-native ×2
ethereum ×1
expo ×1
gps ×1
html ×1
javascript ×1
location ×1
redux ×1
redux-thunk ×1
trezor ×1
truffle ×1
web3js ×1