struct buyer{
uint amount;
Status status;
}
mapping(address=>buyer) public buyers;
mapping(uint=>address) buyerIndex;
uint public buyerNum;
//Order a product.
function(){
uint doubleValue=value*2;
uint amount=msg.value/doubleValue;
if(buyers[msg.sender]==null){ //Error in this line
buyer abuyer=buyer({amount:amount,status:Status.Created}); //Error in this line
buyerNum++;
buyerIndex[buyerNum]=msg.sender;
buyers[msg.sender]=abuyer;
}else{
buyers[msg.sender].amount+=amount;
}
Order(msg.sender,amount*doubleValue,amount);
}
Run Code Online (Sandbox Code Playgroud)
如果买方没有记录在买方映射中,那么buyerNum ++; 但我不知道如何判断买家是否在映射中
我如何连接字符串的可靠性?
var str = 'asdf'
var b = str + 'sdf'
Run Code Online (Sandbox Code Playgroud)
似乎不起作用..
我查阅了文档(https://github.com/ethereum/wiki/wiki/Solidity-Tutorial#elementary-types-value-types),并没有提到有关字符串连接的内容.但据说它适用于点('.')?
"[...] a mapping key k is located at sha3(k . p) where . is concatenation."
Run Code Online (Sandbox Code Playgroud)
也没为我工作..:/
我正在尝试编译(通过 Hardhat)一个合约,该合约导入具有不同 Solidity 版本的多个接口,但出现以下错误:
Error HH606: The project cannot be compiled, see reasons below.
These files and its dependencies cannot be compiled with your config. This can happen because they have incompatible Solidity pragmas, or don't match any of your configured Solidity compilers.
* contracts/FlashLoaner.sol
Run Code Online (Sandbox Code Playgroud)
闪贷者.sol:
Error HH606: The project cannot be compiled, see reasons below.
These files and its dependencies cannot be compiled with your config. This can happen because they have incompatible Solidity pragmas, or don't match any …Run Code Online (Sandbox Code Playgroud) 我想制作一个简单的智能合约,它有一个列表,可以设置项目,并可以获取列表.
代码实力:
contract lister {
mapping(int => string) list;
int id = 0;
function getList() returns ( /*HERE*/ ) {
return list;
}
function setItemToList(string str) {
list[id] = str;
id++;
}
}
Run Code Online (Sandbox Code Playgroud)
我想让getList()返回列表,但返回类型不兼容.我怎样才能做到这一点?
我试图将我简单的可靠性智能合约部署到Rinkeby网络上,但我一直收到错误:
UnhandledPromiseRejectionWarning:错误:无法存储合同代码,请检查您的气体限制.
我的可靠性代码很简单
pragma solidity ^0.4.18;
contract Greetings{
string public message;
function Greetings(string initialMessage) public{
message = initialMessage;
}
function setMessage(string newMessage) public {
message = newMessage;
}
}
Run Code Online (Sandbox Code Playgroud)
我的部署脚本是:
const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const { interface,bytecode} = require('./compile');
const provider = new HDWalletProvider(
'twelve word mnemonic...',
'https://rinkeby.infura.io/GLm6McXWuaih4gqq8nTY'
);
const web3 = new Web3(provider);
const deploy = async () => {
accounts = await web3.eth.getAccounts();
console.log('attempting to deploy from account',accounts[0]);
const result = await new web3.eth.Contract(JSON.parse(interface)) …Run Code Online (Sandbox Code Playgroud) 我在 remix 中尝试了像上面那样的 Solidity 示例,solidity 版本 > 0.5.0 但我现在收到此错误。解决此错误的方法是什么?
contract MyContract {
string value;
function get() public view returns (string) {
return value;
}
function set(string _value) public {
value = _value;
}
constructor() public {
value = "myValue";
}
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个以太坊DApp.DApp由具有关联数据的用户组成,例如电子邮件,姓名和个人资料图片.我想将用户的内容作为JSON对象存储在IPFS中,并使用IPFS哈希在链上引用它.我怎样才能将这些数据与特定用户相关联?从某种意义上说,后续与DApp的交互将用户与存储在IPFS中的数据联系起来.这是使用用户帐户哈希和某种密码完成的吗?
例如,用户A有兴趣使用DApp,因此,提供他或她的电子邮件,姓名和个人资料图片.然后,任何与DApp的后续交互,如评论或帖子,都会将此用户链接到IPFS中的相应用户数据.
对这种建模用户的方式的任何建议或调整将不胜感激.谢谢!
(PS我来自传统的网络/移动应用程序世界,所以我只是习惯于使用智能合约对事物进行建模.所以如果这是一个简单或结构不合理的问题,我会提前道歉.)
我正在使用 React、Next.Js、semantic-ui-react 和 Solidity。我的目标是打印出用户地址(来自 MetaMask)和一个 ProjectTitle(由用户设置)作为语义 ui-react 卡片的元信息。打印“标题”中的地址是有效的,但我无法将 ProjectTitle 打印为“元”。标题应该是一个字符串,但我收到了一个对象承诺。
static async getInitialProps() {
const projects = await factory.methods.getDeployedProjects().call();
return {
projects
};
}
async getProjectTitle(address) {
let title;
try {
title = await factory.methods.projectTitle(address).call();
} catch (err) {
console.log('err');
}
return title;
}
renderProjects() {
const items = this.props.projects.map(address => {
return {
header: address,
color: 'green',
description: (
<Link route={`/projects/${address}`}>
<a>View Project</a>
</Link>
),
**meta: this.getProjectTitle(address)**,
fluid: true,
style: { overflowWrap: 'break-word' }
};
}, );
return <Card.Group …Run Code Online (Sandbox Code Playgroud) 我显然检查connect-privkey-to-provider了依赖项中是否存在模块。但是,它一直说模块'connect-privkey-to-provider'是无关的npm
并且找不到模块'connect-privkey-to-provider'
我的代码有什么问题?
PS C:\Users\1Sun\addition-game-starter> truffle deploy --network klaytn 错误:找不到模块“connect-privkey-to-provider” 在 Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) at Function.Module._load (internal/modules/cjs/loader.js:508:25) 在 Module.require (internal/modules) /cjs/loader.js:637:17) 在对象的 require (internal/modules/cjs/helpers.js:22:18)。(C:\Users\1Sun\addition-game-starter\truffle.js:2:29) 在 Module._compile (internal/modules/cjs/loader.js:701:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) at tryModuleLoad (internal/modules/cjs/loader.js:539:12) ) at Function.Module._load (internal/modules/cjs/loader.js:531:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/ helpers.js:22: 18) 在 Function.Config.load (C:\Users\1Sun\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-config\index.js:254:1) 在 Function.Config。在 Object.run (C:\Users\1Sun\) 检测 (C:\Users\1Sun\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-config\index.js:243:1) AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-core\lib\commands\migrate.js:35:1) at Command.run (C:\Users\1Sun\AppData\Roaming\npm \node_modules\truffle\build\webpack:\packages\truffle-core\lib\command.js:101:1) 在 Object. (C:\Users\1Sun\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-core\cli.js:22:1) 在 1) 在 Function.Config.detect (C:\Users\1Sun\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-config\index.js:243:1) 在 Object.run ( C:\Users\1Sun\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-core\lib\commands\migrate.js:35:1) 在 Command.run (C:\Users\ …
我有一个 Solidity 智能合约ContractFactory,正在RSK上部署并在Hardhat中开发。ContractFactory具有deploy生成新Child智能合约的函数。\n\xe2\x80\x8b
// SPDX-License-Identifier: MIT\npragma solidity ^0.8.9;\n\xe2\x80\x8b\ncontract ContractFactory {\n event ContractDeployed(address owner, address childContract);\n\xe2\x80\x8b\n function deploy() public {\n Child newContract = new Child(msg.sender);\n emit ContractDeployed(msg.sender, address(newContract));\n }\n}\n\xe2\x80\x8b\ncontract Child {\n address owner;\n\xe2\x80\x8b\n constructor(address _owner) {\n owner = _owner;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n在调用该函数之前,我能否知道 新的智能合约将收到RSKdeploy上的哪个地址?Child
solidity ×10
ethereum ×7
blockchain ×2
contract ×1
hardhat ×1
ipfs ×1
javascript ×1
next.js ×1
node-modules ×1
node.js ×1
npm ×1
reactjs ×1
rsk ×1
truffle ×1