Solidity way to explore https:https://cdn.v2ex.com/navatar/e193/47e1/1115_normal.png?m=1727245122 https:https://cdn.v2ex.com/navatar/e193/47e1/1115_large.png?m=1727245122 2025-07-02T02:21:17Z Copyright © 2010-2018, V2EX renounced 的合约可以改 tax 吗 tag:www.v2ex.com,2025-07-02:/t/1142423 2025-07-02T02:21:17Z 2025-07-02T02:21:17Z xinhaiw member/xinhaiw renounced 的合约,tax wallet 还是可以改 tax 吗

https://etherscan.io/address/0xe01bc45AE62926EC4484D5d803e360931810C4F0#code

]]> 线下 | 全职 | 广州 | 8k-12k | Solidity 开发工程师 tag:www.v2ex.com,2024-03-05:/t/1020705 2024-03-05T03:09:54Z 2024-03-05T03:06:54Z Leo876 member/Leo876 你可以获得的:
  1. 年底公司利润分红,根据能力拿奖金
  2. 前沿的行业认知与宝贵的创业经历

选择大于努力,想弯道超车、超越同龄人的小伙伴请跟上

岗位职责:

  1. 以太坊智能合约开发。
  2. 研究区块链领域智能合约算法,梳理主流公链平台的智能合约技术现状与优劣。对规范的智能合约体系深入研究,包括不限于以太坊等智能合约虚拟机和编程语言、规范。
  3. 根据业务细分对智能合约进行抽象和定义,形成协议并利用智能合约进行协议验证性工作和测试。
  4. 利用智能合约进行跨链交互,跨链相关功能在智能合约中的用法分析和编码实现。
  5. 利用 web3js/web3j 、golang 等框架或语言对智能合约进行私链/测试链验证性测试,使用 Truffle 和 Openzeppelin 对现有合约进行集成开发和优化。

任职要求:

  1. 熟悉 Solidity 编程,能独立完成业务逻辑的 solidity 智能合约编程实现,了解 EVM 和 EOS 虚拟机基本原理。
  2. 熟练掌握区块链技术,熟悉智能合约开发语言 Solidity ;
  3. 熟悉使用 Openzepplin 进行智能合约项目迭代开发和集成。
  4. 熟悉各种数据结构和算法,对密码学、安全协议有研究;深入了解以太坊等区块链的原理、机制和相关加密算法;
  5. 熟悉 Truffle 开发框架、能使用 Truffle 或 Hardhat 进行智能合约测试案例的编写和验证。
  6. 对以太坊底层协议,运行机制和底层实现等有一定的研究分析;
  7. 拥有优秀的发现和解决问题的能力,良好的沟通和团队协作能力,能承担一定压力;

加分项:

  1. GitHub 开源项目代码;有自己的技术博客。
  2. 有过成功具备一定用户量包括但不限于 ERC20/ERC721 Token 合约、DAPP (多重签名钱包、游戏或其他)智能合约。在 etherscan 可溯源项目源码。
  3. 深刻理解智能合约安全体系,并能详细阐述各种类型的智能合约漏洞的攻防措施

联系方式

电话&微信: 18320658783

]]>
[Solidity 群] 诚邀各位大佬加入! tag:www.v2ex.com,2022-12-09:/t/901308 2022-12-09T04:29:02Z 2023-04-01T21:36:36Z lasuar member/lasuar 我正在学习 solidity ,发现国内基本没有对应论坛,非常阻碍国人开发,遂建立了一个 v 群,有兴趣的来加,共建 cn solidity 开发社区!初期建立,扫码即可加入!

图

]]>
接 Dapp 开发 tag:www.v2ex.com,2022-06-01:/t/856822 2022-06-01T14:47:51Z 2022-06-04T10:14:42Z 0xVerin member/0xVerin 接 Dapp 开发,Dapp 前端全会,合约会的有:质押流动性挖矿,花样 ERC20 ,NFT 等,太复杂不接,没时间去做。

]]>
Solidity 入门教程 第一小节(主题有字数限制) tag:www.v2ex.com,2022-05-30:/t/856187 2022-05-30T04:21:56Z 2022-07-02T07:58:52Z notot member/notot 导读

此教程适合至少了解过一点合约相关知识,对区块链有基本共识同学进行观看。

不管你是需要阅读合约源码,亦或是需要编写合约。这份指南都会对你有所帮助,这份为个人整理比不上官方文档,但是对特别需要注意的知识点做了补充说明,可用此文档进行过度。在后续有更加细节的知识点需要查询时,可到官方文档进行查阅。

Official Solidity Docs - EN

Community Solidity Docs - ZH

01. Tutorial

1.1 基础语法

pragma solidity >=0.4.0 <0.6.0; contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { return storedData; } } 

上面是一个最简单的合约

Pragma

第一行表示合约对应的 solidity 版本,大于等于 0.4.0 但是小于 0.6.0

也可以像下面这种写法

pragma solidity ^0.4.0; 

Contract

合约本质上就是运行在区块链上的一段代码,如上方所示 unit storedData 代表了它是运行上区块链上的一个变量。我们可以通过下方的 get set 来对他进行修改。

Import

在 solidity 语言中,想要使用其他模块的方法或属性,则需要进行倒入,总共由两种方法

import "filename" 

也可以使用

import * as symbolName from "filename"; 

1.2 第一个程序

注意:solidity 不像 JS JAVA 等语言,可以直接在本地运行,它更多的是需要像 EVM 这样的环境才能运行,所以在刚开始练习的时候,最好是用比较简单,能直观看到结果的编辑器。

打开页面 Remix IDE,运行我们的代码。

Step 1

将下方 Example 中的代码拷贝到 Remix 中

Example

pragma solidity ^0.5.0; contract SolidityTest { constructor() public{ } function getResult() public view returns(uint){ uint a = 1; uint b = 2; uint result = a + b; return result; } } 

Step 2

切换到 编译 Tab ,点击编译

image-20220524153016705

Step 3

点击部署

image-20220524153348647

Step 4

部署完成之后,下方就可以看到我们部署后的合约

image-20220524153639653

然后将合约展开,展开之后我们就可以在这里面调用合约中代码。

image-20220524153706691

点击 getResult

image-20220524153724296

就能得到结果。这样我们就完成了第一个 solidity 程序的编写和部署测试。

1.3 注释

支持两种形式

function getResult() public view returns(uint){ // This is a comment. It is similar to comments in C++ /* * This is a multi-line comment in solidity * It is very similar to comments in C Programming */ uint a = 1; uint b = 2; uint result = a + b; return result; } 

1.4 类型

types

地址 Address

address 保存代表以太坊地址大小的 20 字节值。 一个地址可以使用 .balance 方法获取余额,也可以使用 .transfer 方法将余额转移到另一个地址。

address x = 0x212; address myAddress = this; if (x.balance < 10 && myAddress.balance >= 10) x.transfer(10); 

image-20220527113057200

address 这里容易让人有点误解,明明存入的是 0x1341243243... 这样的一个东西,但是却可以直接点出方法 balancetransfer这里需要消化一下,不然后面容易懵

这里的 address 对象我们可以理解为是一个包装数据类型,可以直接理解 address 为一个类,他本身就具备很多方法。只不过在初始化的时候跟传统的 Struct 结构的数据不一样。只需要设置地址就可以了,程序会自动帮我们处理。

address 中所有的可用方法

<address>.balance (uint256):

以 Wei 为单位的 地址类型 的余额。

<address>.transfer(uint256 amount):

地址类型 发送数量为 amount 的 Wei ,失败时抛出异常,发送 2300 gas 的矿工费,不可调节。

<address>.send(uint256 amount) returns (bool):

地址类型 发送数量为 amount 的 Wei ,失败时返回 false,发送 2300 gas 的矿工费用,不可调节。

<address>.call(...) returns (bool):

发出低级函数 CALL,失败时返回 false,发送所有可用 gas ,可调节。

<address>.callcode(...) returns (bool)

发出低级函数 CALLCODE,失败时返回 false,发送所有可用 gas ,可调节。

<address>.delegatecall(...) returns (bool):

发出低级函数 DELEGATECALL,失败时返回 false,发送所有可用 gas ,可调节。

1.5 变量

image-20220524155201718

此小节非常重要。

在 Solidity 中总共有 3 种变量

状态变量

表明存储在合约中的变量,什么叫存储在合约中呢,其实就相当于 Java 里面的成员变量,在 solidity 中的写法如下

pragma solidity ^0.5.0; contract SolidityTest { uint storedData; // State variable constructor() public { storedData = 10; // Using State variable } } 

本地变量

其值仅在定义它的函数内可用的变量。 函数参数始终是该函数的本地参数。其实说白了就是局部变量,就是写在方法里面的。

pragma solidity ^0.5.0; contract SolidityTest { uint storedData; // State variable constructor() public { storedData = 10; } function getResult() public view returns(uint){ uint a = 1; // local variable uint b = 2; uint result = a + b; return result; //access the local variable } } 

全局变量 [重要‼️]

image-20220527113057200

全局变量是存在于全局工作空间中的特殊变量,它们提供关于区块链和交易属性的信息。说白了就是不需要声明,有点类似于 Node 里面的 Process ,浏览器里面的 Windows ,可以直接拿来使用。

Solidity 中的全局变量有下面几种。

看一下在合约中如何使用 全局变量

pragma solidity ^0.5.0; contract SolidityTest { function getNowTime() public view returns(uint) { return now; } function getSender() public view returns (address payable) { return msg.sender; } function getGaslimit() public view returns (uint) { return block.gaslimit; } } 

然后在从新点击 部署,按照上面讲过的步骤

image-20220524161629834

然后运行部署后的合约。

变量命名规范

1.6 变量作用域

在 1.5 小节中讲到 Solidity 中有三种类型的变量

本地变量的作用于只存在于方法中,但是状态变量有三种作用域。

pragma solidity ^0.5.0; contract C { uint public data = 30; uint internal iData= 10; function x() public returns (uint) { data = 3; // internal access return data; } } contract Caller { C c = new C(); function f() public view returns (uint) { return c.data(); //external access } } contract D is C { function y() public returns (uint) { iData = 3; // internal access return iData; } function getResult() public view returns(uint){ uint a = 1; // local variable uint b = 2; uint result = a + b; return storedData; //access the state variable } } 

上方 Example 的合约关系为

1.7 省略章节

以上内容都比较常规,和平常使用的编程语言,语法差异不大。大家有兴趣可以查查官方文档,这里就不在赘述。

1.8 struct

struct struct_name { type1 type_name_1; type2 type_name_2; type3 type_name_3; } 

struct 可以理解为多种类型的一个包装,就和包装数据类型是一样的。

Eample

pragma solidity ^0.5.0; contract test { struct Book { string title; string author; uint book_id; } Book book; function setBook() public { book = Book('Learn Java', 'TP', 1); } function getBookId() public view returns (uint) { return book.book_id; } } 

1.9 Mapping

mapping(_KeyType => _ValueType)

可以理解为 Hash 类型

pragma solidity ^0.5.0; contract LedgerBalance { mapping(address => uint) public balances; function updateBalance(uint newBalance) public { balances[msg.sender] = newBalance; } } contract Updater { function updateBalance() public returns (uint) { LedgerBalance ledgerBalance = new LedgerBalance(); ledgerBalance.updateBalance(10); return ledgerBalance.balances(address(this)); } } 
]]>
最近上线的 Azuki 项目不仅美术很强, Solidity 程序也很强 tag:www.v2ex.com,2022-01-23:/t/830084 2022-01-23T07:53:15Z 2022-01-23T09:53:52Z Livid member/Livid https://twitter.com/AzukiZen/status/1485026548289732608

https://github.com/chiru-labs/ERC721A

]]>
社区小伙伴通力合作的结晶:智能合约编程语言 Solidity 最新 0.5.8 中文文档 发布 tag:www.v2ex.com,2019-05-09:/t/562435 2019-05-09T02:55:28Z 2019-05-09T03:52:28Z xilibi2003 member/xilibi2003 Solidity 最新 0.5.8 中文文档发布啦~~~ , 这不单是一份 Solidity 速查手册,更是一份深入以太坊智能合约开发宝典。

翻译说明

Solidity 最新 0.5.8 中文文档 根据当前 最新官方版本 v0.5.8 进行翻译,本翻译最初 HiBlock 社区发起,后经过 深入浅出区块链社区 社区成员根据最新版本补充翻译。

大部分的译者,都是国内顶尖的以太坊开发和研究人员,部分译者如下:

感谢所有的译者贡献,献花~ 献花~

这份文档无疑是最新质量最好的中文文档,本文仅仅是部分摘要和目录, 完整文档请前往 https://learnblockchain.cn/docs/solidity/

翻译工作是一个持续的过程(这份文档目前也还有部分未完成),我们热情邀请热爱区块链技术的小伙伴一起参与,欢迎加入我们 Group: https://github.com/lbc-team。

本中文文档大部分情况下,英中直译,但有时为了更好的理解也会使用意译,如需转载请联系 Tiny 熊(微信:xlbxiong ).

Solidity 语言简介 及 文档目录

Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机( EVM )]上运行。

要理解智能合约及虚拟机是怎么运行,推荐这两篇非常好的文章 完全理解以太坊智能合约 及 深入浅出以太坊虚拟机

Solidity 是静态类型语言,支持继承、库和复杂的用户定义类型等特性, 以下是部分目录。

文档目录

深入浅出区块链 - 系统学习区块链,学区块链都在这里,打造最好的区块链技术博客。

]]>
想请教一个 solidity 以太坊合约的代码问题 tag:www.v2ex.com,2018-12-15:/t/517929 2018-12-15T15:37:19Z 2018-12-16T04:18:08Z whoami9894 member/whoami9894 pragma solidity ^0.4.23; contract Preservation { // public library contracts address public timeZone1Library; address public timeZone2Library; address public owner; uint storedTime; // Sets the function signature for delegatecall bytes4 constant setTimeSignature = bytes4(keccak256("setTime(uint256)")); event FLAG(string b64email, string slogan); constructor(address _timeZone1LibraryAddress, address _timeZone2LibraryAddress) public { timeZone1Library = _timeZone1LibraryAddress; timeZone2Library = _timeZone2LibraryAddress; owner = msg.sender; } // set the time for timezone 1 function setFirstTime(uint _timeStamp) public { timeZone1Library.delegatecall(setTimeSignature, _timeStamp); } // set the time for timezone 2 function setSecondTime(uint _timeStamp) public { timeZone2Library.delegatecall(setTimeSignature, _timeStamp); } function CaptureTheFlag(string b64email) public{ require (owner == msg.sender); emit FLAG(b64email, "Congratulations to capture the flag!"); } } // Simple library contract to set the time contract LibraryContract { // stores a timestamp uint storedTime; function setTime(uint _time) public { storedTime = _time; } }

对以太坊相关一窍不通,看了不少文章还是有点摸不着头脑....

这是区块链安全想关的,想请教一下这段合约代码放在 Remix 上编译运行后调用CaptureTheFlag函数前有什么约束吗(这里的目的是调用该函数),我的猜想这里时间戳可能与uint256溢出有关

]]>
请问有没有 ETH solidity 的群或者活跃社区呢? tag:www.v2ex.com,2018-11-22:/t/510462 2018-11-22T08:44:34Z 2018-11-21T08:41:34Z konakona member/konakona solidity 如何正确的产生随机数 tag:www.v2ex.com,2018-08-03:/t/476633 2018-08-03T08:02:07Z 2018-08-15T22:58:58Z xcstream member/xcstream 据说 now difficulty 都不太安全

]]>
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86