Ethere以太坊学习笔记

2023-10-26

以下不一定全,准确率99%

1字节等于2gas


1、变量类型
是否是真 bool 


数字类型:
int/uint:有符号和无符号整形 默认256;
int8到uint256;


地址类型:
address 20字节长度
  属性方法:
send
call
callcode
selfdestruct
delegatecall
字节类型
byte;
bytes; 1.2.3.4.5.6-256,访问方式bytes[0]
字节属性:
length;长度


数组类型:
uint[2] public u; 
长度length;
uint[2][2] public c;
字符串类型 (手续费比较贵 尴尬。。)
string
其他操作:基本无
数据类型
enums 枚举

structs 结构
默认可使用构造函数加属性参数进行传递;
mappings 映射
mappings(uint => address) public addsIndex; map数组
delete 删除;
初始化属性变量;



每个变量都默认有a()的读取方式,a(b)的肤质方式。
2、关键字
属性关键字
public;可见

方法关键字
payable 修饰方法可接受eth




3、操作
<=, <, ==, !=, >= 和 >
比较: <=, <, ==, !=, >=, > (返回 bool)
位运算: &, |, ^ (按位异或), ~ (按位取反)
算术运算 +, -,*, /, % (取余数), ** (乘方), << (左移), >> (右移)
左移运算符 x << y 和 x * 2**y 是相等的,x >> y 和 x / 2**y是相等的。






4、系统函数
block.blockhash(uint blockNumber) returns (bytes32):给定块的散列 - 仅适用于256个最新块,不包括当前块
block.coinbase(address):当前交易块是那个矿工挖出的 矿工地址
block.difficulty(uint):当前区块困难
block.gaslimit(uint):当前阻止gaslimit
block.number(uint):当前程序段号
block.timestamp(uint):当前块时间戳记,因为unix时期以来的秒数
msg.data(bytes):完成calldata
msg.gas(uint):剩余气体
msg.sender(address):当前交易触发的用户地址
msg.sig(bytes4):calldata的前四个字节(即函数标识符)
msg.value(uint):eth转换为 wei的数量 与消息一起发送的wei的数量
now(uint):当前块时间戳(别名为block.timestamp)
tx.gasprice(uint):交易的天然气价格
tx.origin(address):交易的发送者(完整的呼叫链)


5、合约间调用
send
call
callcode
delegatecall


6、event事件


主要用于日志打印
event 函数名称(参数1,参数2);


7、方法
function name(参数){public|private|internal|external} [constant] [payable]  returns(return types){}






external:可以呗其他合约调用,但是再自身合约内不能调用,需要this.f()这样使用;
public 既可以呗其他合约调用,也可以内部直接使用
internal 只能再合约和其子类合约中使用
private 只能再自己的合约内部使用,子类中也不能使用。




pure 此函数数据不会写入区块链,甚至不需要读取区块链数据
view 次函数数据不会写入区块链






constant 
payable 此方法可以接收eth




匿名函数
定义方式只需要把函数名去掉
合约不存在是被调用,接收eth时被调用;
匿名函数可以在不调用方法的情况下收到eth






修改器


 modifiers方法名字
{
if(1=1)
{
  throw;
}else
{
_;//固定写法
}
}






调用时机




function a() 修改器名称
{




}






8、api
keccak256






9、继承


使用is去继承一个合约。子类可以访问父类的除了private限制的属性或方法
包括internal方法和变量,注意不可以使用this来访问。
构造函数需


F
{
}
F1
{
unit u;
F1(uint _u)
{
}
}
B is F,F1(20)
{
F1.u;
}






10、销毁
selfdestruct(address _ad)
销毁当前合约,并把当前合约余额发送到指定地址


11、事件 event

主要用于打印日志


12、发送eth
合约给用户发送eth
msg.sender.send(数量) return bool;
msg.value //用户发送到合约的eth


owner.send(msg.value);//向合约拥有者转移eth
13、address的call方法


send 已经不可用 transfer 发送eth
call 合约间调用方式;


add.call(bytes4(keccak256("fun(uint256,uint256)")),2,2);
调用add合约内的fun函数,此函数有两个uint参数,参数传值 2,2
会操作修改fun合约内的缓存值




callcode
delegatecall
add.delegatecall(bytes4(keccak256("fun(uint256,uint256)")),2,2);
调用add合约内的fun函数,此函数有两个uint参数,参数传值 1,2
不会操作修改fun合约内的缓存值,若有操作则








13、单位
1eth = 18wei
1finney=15wei
1szabo =12wei
1gwei = 9wei
1lovelace = 6wei
1kwei = 3wei 
1wei =1wei




14、库
library 
using 

bessie love erick

紧急需要联系

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ethere以太坊学习笔记 的相关文章

  • iOS和macOS上Swift编写的EOS区块链开源框架SwiftyEOS

    SwiftyEOS是一个用于与EOS交互的开源框架 用Swift编写 可以在iOS和macOS上使用 特点 EOS密钥对生成 私钥导入 签名哈希 基本的RPC API 链 历史 可查询客户端 交易 EOS token 转账 帮助类处理iOS
  • 为什么要使用零知识证明来开发跨链协议

    用户需要什么样的跨链服务 在过去的几年当中出现了各种各样的独立公链以及以太坊 Layer 2 由于在安全性 低成本 快速交易以及开发者和用户社区差异等方面 不同链都具有各自不同的优势 用户在不同链之间切换使用的行为是很常见的 比起以太坊链
  • 荐读

    本文转自 链闻 ChainNews 作者 Karen 虽然区块链技术诞生至今不过短短十余年 但是东西方天然的文化差异在加密世界中同样留下了一些痕迹 当社交媒体上关于 东方区块链 只关心币价 利益和投机而只有 西方区块链 才关心底层技术的革新
  • 在区块链世界中的token到底是什么?

    token的概念很广泛 在计算机领域中 无论是基础的网络架构还是服务系统的身份验证等 都有涉及到token的概念 然而在这里我想阐述的是在区块链世界中的token是什么 相信对区块链有些了解的朋友 都或多或少的听过或者看过关于token的描
  • Gavin Wood Web3峰会最新演讲:波卡不是智能合约平台,而是平台的平台(全文)...

    在波卡上 每个平台都在用高性能 高效率和最优的方式做着自己擅长的事 而不必让它们的用户用底层平台的货币进行支付 从而将可定制性和灵活性提高了一个台阶 本文谨代表作者个人观点 不代表火星财经立场 该内容旨在传递更多市场信息 不构成任何投资建议
  • [区块链安全-CTF Protocol]区块链智能合约安全实战(已完结)

    区块链安全 CTF Protocol 区块链智能合约安全实战 前言 1 The Lost Kitty 2 RootMe 3 Trickster 4 The Golden Ticket 5 Smart Horrocrux 6 Gas Valv
  • 区块链学习笔记(六)——区块链的分类

    文章目录 一 强调 二 公有链 联盟链 私有链 1 公有链 2 联盟链 3 私有链 总结 一 强调 先做一下重复强调 区块链技术是集分布式存储 点对点传输 共识机制 加密算法 数据区块等概念于一体的新兴技术集合 二 公有链 联盟链 私有链
  • 初识区块链

    这篇博客主要从社会和经济层面来直白的向大家讲述区块链是什么 比特币是什么 分享的内容仅限于自己的理解 里面会存在本人的观点 但是希望读者能有自己的独立看法 审慎的阅读本文 甚至能考虑到我的认知不足导致的偏差 不为任何投资电子货币者提供意见
  • FISCO BCOS 2.0新特性解读

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓
  • 阿里巴巴都害怕的区块链电商到底是什么?

    近日 区块链权威机构中国通信工业协会区块链专业委员会 CCIAPCB 发出倡议 联合各界将中共中央政治局10月24日集体学习区块链主席讲话日作为 区块链中国日 此次中央将区块链技术放在了国家战略层面高度上 让区块链一时间成了全民热点 特别是
  • 区块链的安全性与去中心化特点:深入探讨区块链技术的安全性和去中心化特点

    摘要 本文将深入探讨区块链技术的两个核心特点 安全性和去中心化 区块链作为一种分布式账本技术 通过其独特的安全性和去中心化特点 在许多领域引起了广泛关注 我们将分析区块链的安全性原理和其与去中心化的关系 以及区块链技术在保护数据安全和提供信
  • AWS动手实验 - 创建一个Web3网站

    实验操作和录播 亚马逊云科技开发者社区 web3 dApp demo README CN md at main Chen188 web3 dApp demo GitHub 注意事项 按照操作手册进行即可 需要注意到的几个地方 1 EC2 的
  • 新加坡社区领袖卓顺发的荣誉与大爱精神

    2023年11月24日 善济医社义务执行主席卓顺发太平绅士JP BBM L PVPA受邀出席内政部主办的答谢活动2023 主宾为内政部长兼律政部长尚穆根先生 Mr K Shanmugam 2018年起 卓顺发受委为太平绅士后 应内政部邀请
  • 扬帆证券:A股风格或呈大小盘短期均衡

    上星期 A股商场接连弱势盘整格局 沪指于3000点上方窄幅轰动 前期小盘股占优的风格再度演绎 北交所个股体现继续生动 组织观念以为 近期北证50指数的动摇加剧 短期商场的风格或许会呈现大小盘均衡 进入12月 出资者对经济和商场的决心进一步上
  • 探索元宇宙链游戏:一场数字世界的奇妙融合

    随着互联网的飞速发展 以及人们不断对互动娱乐体验的要求提高 元宇宙渐渐成为人们追求的目标 而区块链技术的出现给元宇宙链游开发带来了新的机遇和挑战 一 元宇宙链游定义 元宇宙链游全称为基于区块链技术的元宇宙游戏 是一种新型的网络互动娱乐形式
  • NFTScan | 11.27~12.03 NFT 市场热点汇总

    欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总 周期 2023 11 20 2023 11 26 NFT Hot News 01 Web3 教育平台 Open Campus 获 Binance Labs
  • Stellar Consensus Protocol(SCP)的共识算法

    Stellar Consensus Protocol SCP 是一种用于Stellar网络的共识算法 旨在确保网络中所有节点对账本的一致性 SCP的设计灵感来自于拜占庭将军问题 Byzantine Generals Problem 它采用了
  • zkSend — — 在Sui上发红包像发电子邮件一样简单

    12月14日 知名区块链媒体平台The Block发表了这篇关于对Mysten Labs联合创始人Adeniyi Abiodun的采访 文中 我们 指代该媒体 数据均为截止撰写文章时数据 以下是正文 两年前 当五名前Facebook工程师创
  • NFTScan | 12.11~12.17 NFT 市场热点汇总

    欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总 周期 2023 12 11 2023 12 17 NFT Hot News 01 Pudgy Penguins 衍生 NFT Lil Pudgys 过去一天
  • Moonbeam生态项目分析 — — 跨链借贷协议Orbiter One

    概览 Orbiter One 是一个非托管的借贷协议和DeFi中心 专注于跨链互操作性 通过使用从借贷中赚取的ORB Token铸造的Intergactic Whiskers Brigade NFT 用户可以质押并获得额外奖励 借贷和跨链存

随机推荐

  • Python模块之操作数据库MySQL篇

    目录 一 安装PyMySQL模块 二 操作数据库 1 连接数据库 2 执行sql语句 execute和executemany 3 创建数据表 三 操作MySQL数据表 1 新增数据 2 查询数据 3 修改数据 4 删除数据 5 踩到的坑 一
  • python批量读取Excel文件

    将同一个文件夹下的xlsx文件读取 import os import pandas as pd path r path of file for i in os listdir path df pd read excel os path jo
  • [读论文]CAAD-2018 Targeted Attack方向季军技术报告

    这次分享的是CAAD 2018比赛中Northwest Security团队的技术报告 该团队在此次比赛中取得了了targeted Attack 方向第三名 non targeted Attack方向第四名的成绩 题目 Leverage O
  • 构建 fluentd 镜像与部署应用

    本文将具体介绍如何在基础镜像 ubuntu 20 04 上搭建 fluentd 镜像 并且实现监控指定目录的日志文件 构建镜像 首先 从 docker hub 中挑选一个合适的基础镜像 例如 ubuntu 20 04 docker pull
  • 区块链+物联网=?

    链客 专为开发者而生 有问必答 此文章来自区块链技术社区 未经允许拒绝转载 区块链与物联网 IoT 的交叉应用已成为最有前途的区块链用例之一 在过去的几个月里 IoTeX一直与我们的战略合作伙伴合作 并进行了独立的研究 为了能够在短期内采用
  • 新闻

    4月 中国科技产业智库甲子光年发布 AIGC应用与实践研究展望报告 及AIGC产业图谱 面向AIGC技术创新者 产业参与者 资本机构和政府等各方展现AIGC产业的整体生态环境和行业发展 华院数智人凭借其在生成式AI技术 人机交互能力和市场应
  • esp32+vscode环境搭建速记

    esp32idf vscode环境搭建速记 建议按照入下步骤进行 在vscode插件里安装esp32idf 或者用在线的下载器安装会出现一些莫名奇妙的问题 第一步 安装esp32idf 官方网址 https dl espressif cn
  • gridlayout java_Swing-布局管理器之GridLayout(网格布局)-入门

    网格布局特点 l 使容器中的各组件呈M行 N列的网格状分布 l 网格每列宽度相同 等于容器的宽度除以网格的列数 l 网格每行高度相同 等于容器的高度除以网格的行数 l 各组件的排列方式为 从上到下 从左到右 l 组件放入容器的次序决定了它在
  • idea中thymeleaf语法不提示的所有原因

    首先pom xml里面要导入thymeleaf的依赖 然后在html中加入 xmlns th http www thymeleaf org 最后点击file gt settings 查看插件是否使用 未使用点击打勾重启
  • AMS1117典型电路

    AMS1117 3 3V 5V 封装 常见应用连接 1 输入旁路电容Input Bypass Capacitor A 10uF tantalum on the input is a suitable input bypassing fora
  • 解决 SyntaxError:Unexpected end of JSON input 或 Unexpected token u in JSON at position 0 问题

    1 报错原因 JSON 接收的数据不完整 或者数据格式不符合要求 如 undefined 2 JSON 数据格式要求 1 JSON文件都是被包裹在一个大括号中 通过key value的方式来表达数据 2 JSON的Key必须包裹在一个双引号
  • Python 魔法方法(三) __getattr__,__setattr__, __delattr__

    1 getattr 当我们访问一个不存在的属性的时候 会抛出异常 提示我们不存在这个属性 而这个异常就是 getattr 方法抛出的 其原因在于他是访问一个不存在的属性的最后落脚点 作为异常抛出的地方提示出错再适合不过了 看例子 我们找一个
  • 调试最长的一帧(第27天)

    对于几个多线程渲染中的成员变量 继续抄一抄 Block阻塞器 BlockCount 计数器类 它与阻塞器类的使用方法基本相同 block 阻塞线程 release 释放线程 不过除此之外 BlockCount的构造函数还可以设置一个阻塞计数
  • Point Cloud Library学习之ICP迭代最近点匹配法NDT2D正态分布转换法

    参考来源 https pointclouds org documentation classpcl 1 1 registration html ab1d64f86162b2df716ead8d978579c11 http epsilonjo
  • ctab提取dna流程图_核酸提取、纯化与常见问题解答

    写在前面 核酸提取包括DNA提取 RNA提取 质粒提取 核酸是遗传信息的携带者 是基因表达的物质基础 是分子生物学研究的主要对象 无论是进行核酸的结构还是功能研究 首先都需要对核酸进行提取和纯化 核酸是生命的最基本物质之一 可分为DNA和R
  • Kotlin协程的简单用法(GlobalScope、lifecycleScope、viewModelScope)

    协程 Coroutine 协程就像非常轻量级的线程 线程是由系统调度的 线程切换或线程阻塞的开销都比较大 而协程依赖于线程 但是协程挂起时不需要阻塞线程 协程是由开发者控制的 所以协程也像用户态的线程 非常轻量级 一个线程中可以创建任意个协
  • 目前开源数据集整理

    Attention 我的Dr Sure项目正式上线了 主旨在分享学习Tensorflow以及DeepLearning中的一些想法 期间随时更新我的论文心得以及想法 Github地址 https github com wangqingbaid
  • RabbitMQ系列(十)RabbitMQ进阶-Queue队列参数详解-死信交换机

    RabbitMQ进阶 Queue队列参数详解 死信交换机 文章目录 RabbitMQ进阶 Queue队列参数详解 死信交换机 1 Dead Letter Exchange 介绍 2 死信消息方式 2 1 消息被拒绝 2 1 1 channe
  • vim 使用set paste 解决多行复制粘贴乱序问题

    要粘贴的话 先set paste 然后粘贴 然后再set nopaste Reference https blog csdn net Dream Flying BJ article details 54708157
  • Ethere以太坊学习笔记

    以下不一定全 准确率99 1字节等于2gas 1 变量类型 是否是真 bool 数字类型 int uint 有符号和无符号整形 默认256 int8到uint256 地址类型 address 20字节长度 属性方法 send call ca