在 ethereum web3 合约上传输 api,如何无法在主网上更改 "from" 参数?
transfer api on ethereum web3 contract, How it is not possible changing "from" parameter on main net?
我是 Dapp 的新手。并研究如何制作 dapp。
我发现了一些这样的代码。在钱包之间转移代币
Token.transfer(accounts[1], 10, {from:accounts[2]}).then(function(result){
console.log(result)
})
这会将 10 个代币从账户[2]发送到账户[1]
我了解这是开发模式,它可以处理所有帐户。
但是,我不知道如何在生产中不可能?
我找不到任何关于这个的东西..
任何用户都可以调用此 api 从地址更改吗?
如果不是,那怎么不是?
我认为应该有一些防止代码用户无法更改值。
测试RPC网络,所有账号均可解锁。
所有解锁的账户都可以在没有签名交易的情况下处理。
你可以unlock/lock使用命令
web3.personal.unlockAccount(address);
web3.personal.lockAccount(address);
如果您锁定账户,您将无法在没有签署交易的情况下直接使用'transfer'功能。
参考:
- 所有账户在eth主网默认锁定
对于 erc20 代币的转账目的,有 2 种方法,Transfer
和 TransferFrom
。
如果您使用转账方式,您必须使用 FromAccount
私钥签署交易。
如果您使用 TransferFrom
,您必须在之前的交易中将 FromAccount
的 Allowance 设置为 ToAccount
(由 FromAccount
私钥签名)。即使在开发网络中,如果没有使用 FromAccount
私钥签名的交易,您也无法从 FromAccount
转移令牌。
我是 Dapp 的新手。并研究如何制作 dapp。 我发现了一些这样的代码。在钱包之间转移代币
Token.transfer(accounts[1], 10, {from:accounts[2]}).then(function(result){
console.log(result)
})
这会将 10 个代币从账户[2]发送到账户[1]
我了解这是开发模式,它可以处理所有帐户。
但是,我不知道如何在生产中不可能? 我找不到任何关于这个的东西..
任何用户都可以调用此 api 从地址更改吗? 如果不是,那怎么不是?
我认为应该有一些防止代码用户无法更改值。
测试RPC网络,所有账号均可解锁。 所有解锁的账户都可以在没有签名交易的情况下处理。
你可以unlock/lock使用命令
web3.personal.unlockAccount(address);
web3.personal.lockAccount(address);
如果您锁定账户,您将无法在没有签署交易的情况下直接使用'transfer'功能。
参考:
- 所有账户在eth主网默认锁定
对于 erc20 代币的转账目的,有 2 种方法,Transfer
和 TransferFrom
。
如果您使用转账方式,您必须使用 FromAccount
私钥签署交易。
如果您使用 TransferFrom
,您必须在之前的交易中将 FromAccount
的 Allowance 设置为 ToAccount
(由 FromAccount
私钥签名)。即使在开发网络中,如果没有使用 FromAccount
私钥签名的交易,您也无法从 FromAccount
转移令牌。