前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Solidity-浆糊日记-msg.value-Ether Units (wei, finney, szabo, ether)

Solidity-浆糊日记-msg.value-Ether Units (wei, finney, szabo, ether)

原创
作者头像
rys
修改于 2020-12-10 09:56:06
修改于 2020-12-10 09:56:06
3.2K00
代码可运行
举报
文章被收录于专栏:问题解决问题解决
运行总次数:0
代码可运行

Q: 在刚开始用 remix 学solidity时一直很好奇这个VALUE是指什么?

A: 后面明白这个 VALUE是指的 msg.value, 部署合约和操作函数所需要的value

Q: 问题又有了,为什么指定了这个,msg (做操作的地址)就会将 token 转到 contract 的地址了,是调用了什么函数吗? [思考。。。。。。]

Note: msg.sender.transfer(amount) 这是指contract的账户向当前msg的账户转账。而且里面的值的单位是wei!!!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pragma solidity ^0.4.21;

contract Money {
    
    event AddressBalanceShow(address current_address, uint256 current_account_address_balance,uint256 contract_account_balance);
    
    constructor() public payable {
       emit AddressBalanceShow(msg.sender, address(msg.sender).balance, address(this).balance);
    }
    
    function deposit() public payable {
        emit AddressBalanceShow(msg.sender, address(msg.sender).balance, address(this).balance);
    }
    
    function withdrawball(uint256 _value) public payable {
        msg.sender.transfer(_value);
        emit AddressBalanceShow(msg.sender, address(msg.sender).balance, address(this).balance);
    }
    
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第十二课 SOLIDITY语法难点解析及故障排查
(1)推荐编辑器 目前尝试 Solidity 编程的最好的方式是使用 Remix (需要时间加载,请耐心等待)。Remix 是一个基于 Web 的 IDE,它可以让你编写 Solidity 智能合约,然后部署并运行该智能合约。 如果外网不能访问,可以访问欧阳哥哥搭建的REMIX编辑器 (2)Visual Studio Extension Microsoft Visual Studio 的 Solidity 插件,包含 Solidity 编译器。 (3)Visual Studio Code extension Microsoft Visual Studio Code 插件,包含语法高亮和 Solidity 编译器。
辉哥
2018/08/10
1.2K0
第十二课 SOLIDITY语法难点解析及故障排查
智能合约安全审计之路-重入攻击
描述:漏洞合约中某个函数中,使用call()方法发送eth,若eth的接收者为一个合约地址,则会触发该合约的fallback()函数。若该合约是攻击者的恶意合约,攻击者可以在fallback()函数中重新调用漏洞合约的上述函数,导致重入攻击
字节脉搏实验室
2020/03/08
1.1K0
智能合约安全审计之路-重入攻击
以太坊蜜罐智能合约分析
在学习区块链相关知识的过程中,拜读过一篇很好的文章《The phenomenon of smart contract honeypots》,作者详细分析了他遇到的三种蜜罐智能合约,并将相关智能合约整理收集到Github项目smart-contract-honeypots。
Seebug漏洞平台
2018/07/12
1.2K0
Solidity 安全:已知攻击方法和常见防御模式综合列表
以太坊智能合约的特点之一是能够调用和利用其他外部合约的代码。合约通常也处理 Ether,因此通常会将 Ether 发送给各种外部用户地址。调用外部合约或将以太网发送到地址的操作需要合约提交外部调用。这些外部调用可能被攻击者劫持,迫使合约执行进一步的代码(即通过回退函数),包括回调自身。因此代码执行“重新进入”合约。这种攻击被用于臭名昭著的 DAO 攻击。
辉哥
2018/08/10
1.4K0
以太坊蜜罐智能合约分析
作者:dawu&0x7F@知道创宇404区块链安全研究团队 时间:2018/06/26
Seebug漏洞平台
2018/07/26
1.4K0
以太坊蜜罐智能合约分析
以太坊智能合约安全开发建议
请求不可信的合约时可能会引入一些意外风险或错误。在调用外部合约时,外部合约或其依赖的其它合约中可能存在恶意代码。因此,每个外部合约的请求都应该被认为是有风险的。如必须请求外部合约,请参考本节中的建议以最大程度的减小风险。
Tiny熊
2020/12/29
1.2K0
第八课 如何调试以太坊官网的智能合约众筹案例
【本文目标】 发布并执行通ETH官网的众筹合约代码。 【前置条件】 参考《第七课 技术小白如何在45分钟内发行通证(TOKEN)并上线交易》完成了ColorBay的发行。 【技术收获】 1). 调试成功以太坊官网的智能合约众筹代码 2). REMIX和myetherwallet配合的智能合约代码调试
辉哥
2018/08/10
1.7K0
第八课 如何调试以太坊官网的智能合约众筹案例
智能合约安全审计之路-返回值检查漏洞
描述:未检查低级别调用的返回值,在solidity中的低级别调用与其他函数调用不同,如果调用中发生了异常并不会将异常传递,而只是返回true或false。因此程序中必须对低级别调用的返回值进行检查,而不能期待其出错后促使整个调用回滚。
字节脉搏实验室
2020/03/31
1.2K0
用一个示例入门solidity编程语言
我们拿上一篇文章的示例程序作为切入点,来了解一下solidity的主要语法。需要说明的是这篇文章不是solidity的手册,不会把语言所有的语法点都覆盖,需要查看手册可以看文章最后的参考链接。
用户7634691
2023/02/24
5820
用一个示例入门solidity编程语言
重入攻击概述
以太坊智能合约中的函数通过private、internal、public、external等修饰词来限定合约内函数的作用域(内部调用或外部调用),而我们将要介绍的重入漏洞就存在于合约之间的交互过程,常见的合约之间的交互其实也是很多的,例如:向未知逻辑的合约发送Ether,调用外部合约中的函数等,在以上交互过程看似没有什么问题,但潜在的风险点就是外部合约可以接管控制流从而可以实现对合约中不期望的数据进行修改,迫使其执行一些非预期的操作等。
Al1ex
2021/03/21
1.1K0
<Solidity学习系列一>根据例子学习Solidity
声明:本系列文章是自己在http://solidity-cn.readthedoc... 学习solidity时,因为英语水平不够,被迫用谷歌粗略翻译的。仅为了方便学习,中间肯定有很多错误的地方。请勘误。
Charlie_W
2018/10/19
4930
Solidity:接收 ETH
在Solidity中,payable是一个函数修饰符,它允许函数接收Ether(以太币)。如果一个函数被标记为payable,那么你可以在调用该函数时附带一定数量的Ether。如果一个函数没有被标记为payable,那么你不能在调用该函数时发送Ether,否则交易将被拒绝。
孟斯特
2024/05/28
1930
Solidity:接收 ETH
智能合约安全审计技术概览
智能合约是区块链技术的重要组成部分,它能够自动执行代码并将结果写入区块链以实现各种业务场景,然而由于智能合约本质上是代码,因此也存在着相应的安全风险,如果智能合约存在漏洞,黑客就有可能利用这些漏洞进行攻击,导致资产损失甚至系统崩溃,因此对智能合约进行安全审计是至关重要的,本文将概述智能合约安全审计技术的相关知识为读者带来更深入的了解
Al1ex
2023/08/10
9730
智能合约安全审计技术概览
Solidity 智能合约开发 - 基础
去年读研的时候上的 HKU 的 <COMP7408 Distributed Ledger and Blockchain Technology>,课程中学习了以太坊智能合约的开发,做了一个简单的图书管理 ÐApp,然后毕业设计也选择了基于 Ethereum 做了一个音乐版权应用,详见 Uright - 区块链音乐版权管理ÐApp,对 Solidity 开发有一些基础了解。
pseudoyu
2023/04/11
8100
Solidity 智能合约开发 - 基础
智能合约:Ethernaut题解(二)
思路:首先贡献一点金额,来通过 require 触发 fallback 函数,来成为合约的所有者,然后 withdraw 函数转走合约中的所有钱
yichen
2020/05/25
8950
solidity的代码
在线solidityIDE solidity 类&函数 pragma solidity ^0.4.25; contract Demo1{ // 创建一个函数 function shwo(int num) public returns(int,int){ return (num,num+1); } } int&uint pragma solidity ^0.4.25; contract IntDemo{ // 主要演示 int uint
tea9
2022/07/16
2840
实现一个可管理、增发、兑换、冻结等高级功能的代币
本文主要介绍代币高级功能的实现: 代币管理、代币增发、代币兑换、资产冻结、Gas自动补充。 写在前面 在上一篇:一步步教你创建自己的数字货币(代币)进行ICO中我们实现一个最基本功能的代币,本文将在上一遍文章的基础上,讲解如果添加更多的高级功能。 实现代币的管理者 虽然区块链是去中心化的,但是实现对代币(合约)的管理,也在许多应用中有需求,为了对代币进行管理,首先需要给合约添加一个管理者。 我们来看看如果实现,先创建一个owned合约。 1234567891011121314151617 contract
Tiny熊
2018/06/21
1.7K0
经典智能合约案例之发红包
可见总额度为20230324wei,按照delpoy,一共是6个红包,发送者的地址如下:
timerring
2023/05/29
3830
经典智能合约案例之发红包
Solidity开发的智能合约安全建议
调用不受信任的外部合约可能会引发一系列意外的风险和错误。外部调用可能在其合约和它所依赖的其他合约内执行恶意代码。因此,每一个外部调用都会有潜在的安全威胁,尽可能的从你的智能合约内移除外部调用。当无法完全去除外部调用时,可以使用这一章节其他部分提供的建议来尽量减少风险。
rectinajh
2021/11/24
1.4K0
solidity代码功能模块
这个合约是一个librray,只有一个函数isContract,且被声明为internal view.internal 限制这个函数只能由import这个合约内部使用;view 声明这个函数不会改变状态
rectinajh
2022/05/20
6050
相关推荐
第十二课 SOLIDITY语法难点解析及故障排查
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验