问题标签 [erc20]

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 投票
1 回答
139 浏览

blockchain - 投标人从钱包中提取时的智能合约(Solidity)拍卖

我有一个网站,它以固定成本为其用户出售某些信息。我想通过我的业务进行 ICO,并尝试改变我的运营模式,以便它可以利用区块链技术。

但是我想确保拍卖参与者以某种方式从他们的以太坊钱包中抽象出来并获得积分(如果实际赢得行动,他们将在稍后支付。即 eBay 模型)而不知道他们实际上在幕后使用区块链。竞标完成后,ICO 投资者将自动获得他们的份额分配给他们,中标者将在付款后收到他们的信息(在大多数情况下,我们将转换为 ETH 并在solidity 合约中将状态标记为已支付)

有没有解决这个问题的方法,我可以为投标人账户即时创建钱包吗?由于我的网站始终是卖家,有没有办法自动设置拍卖(与我的合同进行交互,比如说 java 支持等?)有什么解决方法/建议吗?谢谢你

0 投票
1 回答
2072 浏览

ethereum - 来自以太坊网站的 ERC20 代币代码

我从以太坊官方网站获取了 ERC20 代币的代码。链接:https : //www.ethereum.org/token (页面末尾) 我的问题是为什么他们在那里有两个合约,即 TokenERC20 和 MyAdvancedToken 并且不将所有功能统一在一个合约下?另外,我应该部署哪个合约才能使所有功能正常工作?非常感谢您提前。

0 投票
1 回答
150 浏览

solidity - ERC20、ERC223、ERC721和ERC948的区别?

我是 Solidity 的新手。我有很多类型的可靠性,但我无法了解所有类型的 ERC 的实际差异。谁能向我解释一下异同。

0 投票
1 回答
225 浏览

deployment - 通过部署 ERC20 代币 sol 发出警告,

我想部署我的合同,但我有很多警告,我不知道所有的意思。

函数 SpastToken.increaseApproval(address,uint256) 的 Gas 要求很高。(其他函数 11 次) BasicToken.balanceOf(address) :变量的名称 balance 和 balances 非常相似。注意:此静态分析当前不考虑修饰符。

如果您永远不希望 x 为假,请使用 assert(x),而不是在任何情况下(除了代码中的错误)。如果 x 可能为假,则使用 require(x),例如无效输入或外部组件故障。

0 投票
2 回答
143 浏览

token - 如何将 ERC20 代币持有者的钱包地址保密?

这是代币成为 ERC20 代币所需的接口

我想保密谁拥有我的令牌的地址。所以我删除了 Transfer 事件和 Approval 事件。我还将 balanceOf 函数设为私有。

公众是否还有办法找出谁拥有我的一个代币?还有什么方法可以让公众知道交易何时发生?

0 投票
2 回答
1306 浏览

solidity - 我可以将我的自定义 ERC-20 与我的智能合约一起使用吗?

所以我有一份合同,允许你用我的自定义 ERC20 代币交换 ETH。我现在想将该自定义 ERC20 代币与其他智能合约一起使用。是否有某种方式我必须指定自定义令牌与 ETH?

例子:

pragma 稳固性 ^0.4.24;

/* * ---如何使用: * 1. 向智能合约地址发送任意数量的HYPER Tokens。* 2. 通过发送 0 次 HYPER 交易(每小时 1 次)来获取您的利润 * 3. 如果您没有提款并且赚取超过 200%,您只能在 200% 限额以上提款一次 */ contract HyperLENDtest {

function percentRate() public view returns(uint) { uint contractBalance = address(this).balance;

我不想返回 ETH,而是想使用我的自定义 ERC20 代币给用户发送到合约并获得 ERC20 代币的百分比作为回报。

0 投票
1 回答
4579 浏览

ethereum - 如何解决“gas * price + value”的资金不足?

windows 10 Home x64
bignumber.js@^7.2.1
openzeppelin-solidity@1.10.0
react@16.4.1
react-dom@16.4.1
truffle@4.1.13
web3@1.0.0-beta.34
完整版参考:
https ://github.com/tooploox/ethereum-ico-examples/blob/master/package.json

我做了很多研究。我找到了很多来源,但没有一个找到解决方案,有些线程不再更新,或者他们可能已经找到答案但没有发布。有些人设法在 Mac 中修复它,但我使用的是 Windows。有些人在 5 个月前修复了它,但当我尝试它时,它没有成功,购买将气体调高一点,然后再次运行。我的 Ropsten 帐户中也有6 Ether

这是我的truffle.js

当我truffle migrate --network ropsten

Github 参考:
https
://github.com/tooploox/ethereum-ico-examples 指令参考:
https ://www.tooploox.com/blog/create-and-distribute-your-erc20-token-with-openzeppelin

0 投票
0 回答
105 浏览

solidity - 通过使用 dapp 的服务器地址对数据进行签名来限制用户与合约方法的交互

我有一个带有铸造代币功能的 ERC20 代币合约。

此功能应允许用户在网站上执行特定操作或活动后铸造代币。如果用户成功执行操作,他将能够使用 mint 功能发送交易并接收代币。

我的工作流程和问题:为了防止用户直接与合约交互,想铸币就铸币,合约只允许某个 eth 地址调用铸币函数。如果操作成功执行,该特定地址将在服务器上设置并签署交易。但是,这意味着该地址也必须支付汽油费。

目前我正在考虑实现另一个合约,它将作为唯一可以调用 ERC20 合约上的 mint 函数的地址。这份新合约将接收来自用户的交易,其中包含由服务器地址签名和散列的变量、字符串和随机数。新合约将能够破译数据并知道交易确实得到了服务器的批准,并从代币合约中调用 mint 函数。这样,用户将无法直接尝试铸造代币或一遍又一遍地重新发送交易以获取更多代币。

我设想的一个可能且简单的实现如下:

  1. 服务器签署三条信息:用户地址、要铸造的数量和每笔交易递增的整数(又名 mintRequestId)——这种递增可以是随机的。

  2. 这三个散列字符串被传递给我的用户的客户端逻辑,并作为我的合同方法的参数,该方法提示发送:

    myContract.methods.Mint(signedAddresses, signedMintAmount, signedMintRequestId).send({from: userWallet})

  3. 在我的合同中,我使用我的服务器的钱包公钥记录了三个参数,并且:

    A. 将 msg.sender 与 signedAddresses 进行比较。

    B. 获取金额。

    C. 确保 mintRequestId 大于合约中保存的值。如果满足所有要求,则合同将批准铸币和 mintRequestId 合同更改。

这种方法是不是太简单了?弱点在哪里,你将如何修补它们?可以以某种方式伪造签名以及如何伪造?

谢谢你。

0 投票
0 回答
62 浏览

ethereum - How to generate sign to pass to transferPreSigned(), contract is not asking for sign while transfer()

I'm creating ERC865 token so that users can send tokens without having ether. I followed 1 and 2.

As per 1, sender will sign transaction object while calling transfer() but I'm unable to see any "Sign"! What parameters should be passed to transferPreSigned()? I'm using Metamask and Solidity.

0 投票
0 回答
269 浏览

ethereum - openzeppelin 中关于 MinterRole 合约的问题

我正在使用 openzeppelin 来创建 ICO 合约。我担心这里的 MinterRole。在我开发 Token 合约后,我使用“addMinter”功能将销售合约添加为铸币机。

问题

销售结束后

  1. 我看不到作为铸币者删除合约地址的方法。我看到“renounceMinter”只会删除调用此方法的人。我明白,即使我在那个时候(即销售结束后)删除(或)不删除作为铸币者的合同地址,销售合同也会以一种根本不起作用的方式定义。即使我们将合约地址留在铸币者列表中也安全吗?

  2. 为什么 openzeppelin 设计了带有“renounceMinter”函数的“MinterRole”合约,该函数只能删除调用该合约的人,而“addMinter”函数也可以为其他人执行此操作?

代码

样品众筹

铸币众筹

ERC20Mintable

角色扮演者