问题标签 [metamask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
614 浏览

ethereum - 在 Remix IDE 中部署合约后,Solidity 函数返回 0x00000 的管理器地址

我最近在创建的 Solidity 合约中遇到了一些问题,我正在尝试在 Remix IDE 内部进行部署和交互。我写的返回合约管理器地址的函数是这样的

合约经理的设置方式是这样的

我创建了两个在终端内运行的 JavaScript 编译和部署脚本。部署脚本是这样写的

部署合约后,我会收到已部署的地址(类似于 0xbc0370FbC085FAf053b418e6ff62F26ED2C7Dee1),然后转到 Remix IDE,在其中输入地址并使用 Injected web3 选项。但是,当我调用“getManager”函数时,它返回的地址为 0x0000000000000000000000000000000000000000,我似乎无法让它返回管理器的地址。这种方法以前工作过一次,我似乎无法弄清楚为什么它不再工作了。

0 投票
1 回答
310 浏览

ethereum - 安全地公开您的网络,让任何人都可以访问您的智能合约

我使用 go-ethereum 实现了一个以太坊 PoA 网络

我已经在网络上部署了一个 ERC20 代币,其想法是必须从互联网上的任何钱包(即 metamask、myetherwallet 等)访问网络

这个网络的想法是:

  • 拥有 N 个能够密封区块的完整节点(节点有未锁定的账户)
  • 部署作为 ERC20 代币的智能合约
  • 拥有一个暴露网络的节点,以便从任何来源访问,例如 Metamask、MyEtherWallet、带有钱包的移动应用程序等。这个想法是,如果有合适的客户端,任何人都可以点击 ERC20 代币

为了实现这一点,我创建了 2 个负责密封块的完整节点。

我像这样运行这些节点:

如您所见,这些节点有一些重要的事情:

  1. 解锁帐户
  2. 只能从 localhost 访问(注意 rpcaddres)
  3. 这些节点是矿工

如果我将这样的节点暴露给互联网(允许从任何来源进行 RPC 访问),任何黑客都可以将以太币发送到另一个帐户,因此,我创建了第三个节点,一个标准节点,它不暴露 rpc api,但允许端口上的连接8545(为了被metamask、myetherwallet等点击)

我使用以下命令运行节点:

如您所见,此节点:

  1. 不解锁账户
  2. 允许从任何来源访问 rpc
  3. 不公开 rpc api,如个人、管理员等

我的问题是

  • 这种方法安全吗?
  • 有没有另一种方法可以让世界上的任何人使用 Metamask 来访问我的智能合约,而无需在标准节点上打开 RPC 访问?

为什么我有这些问题

因为有很多地方不推荐开放 RPC 端口,所以如果出现以下情况我不安全:

  • 没有使用解锁帐户暴露的节点
  • 不要暴露关键的 rpc api,比如管理员和个人

足以安全地公开我的节点。

以下是与打开 RPC 访问相关的一些问题:

https://blog.blockdaemon.com/ethereum-geth-configuration-made-in-ireland-7ba2e876c6e3 https://www.reddit.com/r/ethereum/comments/4z0mvi/ethereum_nodes_with_insecure_rpc_settings_are/

https://www.reddit.com/r/ethereum/comments/3ird55/holy_shit_my_eth_accounts_been_hacked/

https://www.reddit.com/r/ethereum/comments/4jav5u/mist_wallet_has_2_sec_vulnerability_for_rpc/

https://blog.3or.de/internet-wide-ethereum-json-rpc-scans.html

https://www.bokconsulting.com.au/blog/7218-ethers-stolen-from-miner-with-rpc-port-open/

https://blog.ethereum.org/2015/08/29/security-alert-insecurely-configured-geth-can-make-funds-remotely-accessible/

这里是以太坊推荐的团队负责人:

好的,您的设置似乎非常危险。--rpcaddr=external_address 本质上是向世界上任何人开放节点以访问它。此外,--rpcapi 'admin,personal,db,eth,net,web3,txpool,miner' 允许任何有权访问的人做任何事情。我可以想象互联网上的某个人正在暴力破解密码。

https://github.com/ethereum/go-ethereum/issues/17417#issuecomment-413877558

0 投票
1 回答
35 浏览

blockchain - 如何将令牌分配给用户

用solidity写了一个Dapp,并把它和一个网页连接起来。目前,因为我处于开发阶段,我正在使用 Ropsten 测试网络来确保我的 Dapp 在我的节点上部署之前正常运行。

现在我正在学习如何通过 Localhost 8545 连接我的 Dapp。我的理解是,如果公共用户要使用我的节点,他们使用的气体将向我收费。

  1. 这是真的吗?
  2. 如何将用户连接到我的节点以使用我的 dapp
0 投票
1 回答
270 浏览

vagrant - 如何从 Vagrant box 运行 ganache-cli?

我在 Vagrant 框中运行 ganache-cli 并尝试将 Metamask (Google Chrome) 连接到它。但是 Metamask 无法连接到它。如果 ganache-cli 在主机上运行,​​它会连接。这是我的流浪文件

流浪文件

setup_dev_env.sh 的内容

0 投票
2 回答
2519 浏览

javascript - 如何监听 Metamask 的 web3 的合约“确认”/“取消”事件?

由于 metamask 的注入 web3 遵循https://github.com/ethereum/wiki/wiki/JavaScript-API

但是在调用 contract.new() 时似乎没有编码来捕捉确认/取消按钮单击事件(如下图)

用户确认/取消的元掩码弹出窗口

有没有办法赶上事件?谢谢。

0 投票
1 回答
7907 浏览

ethereum - 使用元掩码扩展的 chrome 文件中的私钥和事务存储在哪里

我想知道使用元掩码扩展的 google chrome 文件中的私钥和事务存储在哪里。你能帮助我吗?它在 /Users/jackson/Library/Application Support/Google/Chrome/Default/Extensions 中???

0 投票
1 回答
737 浏览

javascript - 无法使用 javascript(web3)通过元掩码扩展获取元掩码余额和发送金额

我已经在我的网站上集成了元掩码,但我需要发送金额并使用元掩码检查 ERC 20 令牌的余额,但对我没有任何作用。我在 WEB3 上尝试了不同的编码和方法。

请向我提供执行的代码。

但是使用下面的代码我无法获得任何与 ERC20 代币相关的细节,但对我来说,ETH 工作正常。

这是我的代码:

0 投票
2 回答
3808 浏览

react-native - iOS 应用程序如何与以太坊钱包交互

我有一个用于 Web 应用程序的 dapp。用户在 Chrome 浏览器中安装了元掩码。他们使用元掩码进行交易。现在我希望使用 react-native 在 iOS 中开发相同的应用程序。如何开发这个?对于浏览器,当用户想要进行任何交易时,只需弹出元掩码并要求确认。

在移动设备中怎么样?他们将如何在设备中安装metmask并在移动设备中进行交易。有可能实现这一目标吗?我该如何开发这个应用程序?

0 投票
2 回答
340 浏览

blockchain - dapp 是否需要元掩码?

与以太坊网络中的 DApp 进行通信是否需要元掩码?如果不是,那么与智能合约交互的另一种方式是什么?

0 投票
1 回答
2915 浏览

javascript - 未定义的window.web3

当我尝试通过 web3js 和 MetaMask 调用以太坊智能合约时,我遇到了获取 window.web3 的问题。该消息说该值未定义。

安慰:

不明确的