Я слышал, что web3
это должно иметь глобальную область действия, что-то похожее на document
или window
.
В чем причина такого архитектурного выбора? Это все еще базовое предположение?
В условиях все более и более модульного ландшафта Javascript мне интересно, действительно ли это правильный путь.
Браузер Mist может в какой-то момент включить web3 в качестве глобальной переменной.
На данный момент обсуждение того, как включить web3
в браузер Mist, все еще обсуждается здесь:
https://gist.github.com/frozeman/fbc7465d0b0e6c1c4c23
Если у вас есть аргументы за или против этого предложения, я бы посоветовал вам опубликовать суть. Я уверен, что они оценят ваш вклад!
web3
в браузере Mist:Предложение по загрузке Mist web3
/* Basically "web3" comes from Mist, but "Web3" CAN come from the dapp. A Dapp has 3 ways to use web3. 2. and 3. would work when in Mist and outside. */ // 1. simply use, web3 comes already defined web3 // 2. optional use web3 from mist, OR load if outside of mist if(typeof web3 === 'undefined') web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); // 3. always use web3 provided by the dapp ("Web3" won't be supplied by Mist), but the provider from mist if(typeof web3 !== 'undefined') web3 = new Web3(web3.currentProvider); else web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); // Add RPC version?
@замороженный человек
Пол С
var web3 = new Web3()
. (просто будьте осторожны, чтобы не управлять событиями между экземплярами web3, он не будет работать и молча выйдет из строя, а контракты кэшируют свой экземпляр web3.eth...). Или вы имели в виду что-то другое?Карл Флерш
Карл Флерш