关于python使用py-solc的问题

使用python3编译并部署solidity合约 Os:Windows PythonVersion:3.9.8(python3.10会报错,建议不要使用python3.10) 2.下载solc文件,并且放在项目文件夹下,或者增加环境变量(或者丢到system32) Python Code 阅读详情

项目的需求需要使用py-solc编译智能合约,但是在使用过程中遇到了一个问题,在查询所有博客之后发现没有什么博客写的能让人看懂的,所以我就记录一下解决过程。

1.安装py-solc: pip install py-solc

2.简单的使用:

from solc import compile_source, compile_files, link_code
print(compile_source("contract Foo { function Foo() {} }"))

如果直接装完 py-solc之后执行这段代码会出现这样的报错:
这里写图片描述

出现这样的错误原因是: 你的电脑里没有solidity的环境,所以需要安装一下这个环境
1.Ubuntu环境(来自转载,没有亲测):

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

2.windows环境(亲测有效):
这是文档的地址:https://www.codeooze.com/blockchain/solc-hello-world/
按照文档中的说明下载win的压缩文件并解压缩之后文件夹目录如下:
这里写图片描述

然后你需要做一下两点:

1.将solc添加至电脑的环境变量;
2.在项目中使用时,将solc.exe文件拷贝粘贴至项目所在文件夹目录;
3.以上完成之后再执行 python代码效果如下:
这里写图片描述
如果在编译智能合约代码后是这样的说明可以完成编译,然后就可以愉快的部署智能合约了。

py-solc, solc封装编译器周围的python 包装器.zip py-solc, solc封装编译器周围的python 包装器 solc solc 封装编译器周围的python 包装器。依赖项这里库要求存在 solc 可执行文件。只支持 >=0.4.2 版本,尽管这里库可以与其他版本一起使用。solc安装指令快速入门安装pi 立即下载

相关推荐

py-solc-x:用于solc Solidity编译器的Python包装器和版本管理工具

py-solc-x 用于solc编译器的Python包装器和版本管理工具。 从 。 产品特点 完全支持Solidity >=0.4.11 在Linux,OSX和Windows上安装Solidity 在Linux和OSX上从源代码编译Solidity 依存关系 Py-solc-x允许使用solc的多个版本,并可以根据需要安装或编译它们。 如果希望从源代码进行编译,则必须首先安装所需的。 安装 通过pip pip install py-solc-x 通过setuptools git clone https://github.com/iamdefinitelyahuman/py-solc

python上关于智能合约的一些操作(py-solc、evm_cfg_builder、pyevmasm)

一、py-solc库 这个库可以编译智能合约源码 使用方法 1.安装solidity https://github.com/ethereum/solidity/releases先在github上下载对应的智能合约版本的压缩包,我下载的0.4.18加压后文件如下 然后将solc添加至环境变量 zxc ...

Zoran的博客 3128

py-solc-ast:探索solc抽象语法树的工具

solcast 用于探索由编译器生成的抽象语法树的。 安装 您可以通过pip安装最新版本: $ pip install py-solc-ast 或者克隆 repo 并使用setuptools : $ python setup.py install 用法 首先,使用将您的合约编译为。 >> > import json >> > import solcx >> > input_json = json . load ( open ( 'input.json' )) >> > output_json = solcx . compile_standard ( input_json ) 接下来,导入solcast并使用from_standard_output_json或from_standard_output初始化。 这将返回一个SourceUnit对象列表,每个对象代表 Solidit

py-solc-x 使用教程

py-solc-x 使用教程 1、项目介绍 py-solc-x 是一个 Python 包装器和版本管理工具,用于 Solidity 编译器 solc。它支持 Solidity 版本 >=0.4.11,并可以在 Linux、OSX 和 Windows 上安装和编译 Solidity。py-solc-x 是从 py-solc 分叉出来的,由 ApeWorX Ltd 维护。 2、项目快速启动 安装...

gitblog_00563的博客 816

Python库 | py-solc-x-0.1.0.tar.gz

资源分类:Python库 所属语言:Python 资源全名:py-solc-x-0.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

Foxglove 介绍以及入门使用教程

Foxglove 是由Foxglove 工作室开发的一套工具集,包括和等组件。跨平台支持:可以在 Windows、macOS 和 Linux 上运行。多协议兼容:支持 ROS、ROS 2、CAN 数据以及其他自定义协议。丰富的可视化功能:可以绘制点云、轨迹、激光雷达数据、IMU 数据等。实时与离线模式:既可以实时监控机器人状态,也可以加载和回放记录的数据文件。Foxglove 的 3D 视图允许你以三维方式查看机器人的运动轨迹、传感器数据和其他几何信息。你可以旋转、缩放和平移视图以获得更好的观察角度。

zolty 1万+

py-solc-x 项目常见问题解决方案

py-solc-x 项目常见问题解决方案 项目基础介绍 py-solc-x 是一个针对 Solidity 编译器的 Python 封装和版本管理工具。它支持 Solidity 版本管理,可以安装或编译多个版本的 solc(Solidity 编译器)。项目主要使用 Python 编程语言实现。 新手常见问题及解决方案 问题一:如何安装 py-solc-x 问题描述: 新手用户在尝试使用 py-sol...

gitblog_00373的博客 456

第二章 HART硬件设计实战 — 基于SD2057的低功耗调制解调器电路详解与选型指南

本文详细解析了基于SD2057芯片的HART协议低功耗调制解调器硬件设计。通过对比分析,阐述了SD2057在成本与性能上的优势,并重点拆解了其核心电路、外围元件选型、原理图绘制要点及PCB布局的实战技巧,为工业现场仪表的智能通信模块开发提供了完整的低功耗解决方案。

gan8painter的博客 423

python调用solc编译智能合约

错误记录,python调用solc编译智能合约(巨坑) 错误信息 Traceback (most recent call last): File “d:/pj/code/compiler.py”, line 38, in getCFG(“auction.sol”) File “d:/pj/code/compiler.py”, line 30, in getCFG bytecodes=getByteCodes(filename) File “d:/pj/code/compiler.py”, line 2

qq_41596539的博客 1324

Android蓝牙Mesh组网实战:从零搭建智能灯光控制系统(附完整代码)

本文详细介绍了基于Android平台开发蓝牙Mesh智能灯光控制系统的完整实战流程。从环境搭建、核心概念解析,到设备扫描配网、网络初始化、模型配置与消息通信,提供了完整的代码实现和调试技巧。重点讲解了如何使用开源Mesh库实现设备发现、分组控制、场景管理等核心功能,并分享了实际项目中遇到的典型问题与解决方案。

weixin_29174013的博客 658

华北理工大学以升实验班蓝桥杯选拔赛题解

文章目录华北理工大学以升实验班蓝桥杯选拔赛题解A:期末考试题目描述题目讲解代码B:月份题目描述题目讲解代码C:打饭题目描述题目讲解代码D : 正弦波信号题目描述题目讲解代码E : 亲爱的长方形题目描述题目讲解代码F:挖金子题目描述题目讲解代码G : 金金的游戏题目描述题目讲解代码H : 区间和题目描述题目讲解代码详细视频讲解请关注华北理工大学b站账号。 华北理工大学以升实验班蓝桥杯选拔赛题解 A:期末考试 题目描述 Description 期末考试过去许多天了,如今成绩都出来了,那么现在让我们对成绩我分个类

Qq1739206233的博客 1128

Ethereum Py-solc 项目常见问题解决方案

Ethereum Py-solc 项目常见问题解决方案 基础介绍 py-solc 是一个 Python 的包装器,它封装了 Solidity 编译器 solc 的功能。这个项目允许开发者通过 Python 代码来编译 Solidity 智能合约。主要使用的编程语言是 Python。 注意事项及解决步骤 问题一:项目依赖和环境配置 问题描述:新手在安装和运行 py-solc 时可能会遇到依赖问题,尤...

gitblog_00134的博客 314

从零配置到稳定运行:A4988步进电机驱动模块的实战避坑指南

本文详细介绍了A4988步进电机驱动模块的配置与优化技巧,涵盖硬件连接、电流调节、微步设置及散热优化等关键环节。通过实战经验分享,帮助用户避开常见陷阱,实现步进电机的稳定运行,特别适合单片机开发者和3D打印机爱好者参考。

weixin_28452161的博客 168

pythonsdk中的问题,使用的是最新版的pythonsdk,有console2、3.py

运行bash init_env.sh -i时 install solc into bin/solc/v0.4.25/solc,但client_config.py中定义为bin/solc/solc.exe,改为bin/solc/v0.4.25/solc即可。原因:python-sdk/client_config.py中的solc_path不正确。问题2:使用的是最新版的pythonsdk,有console2、3.py。

总要有点可以骄傲的东西 217

我的世界进阶模组开发教程——制作机械动力附属模组

摘要: Create是Minecraft的机械动力模组,其代码结构分为多个关键模块: 数据生成系统:通过CreateRecipeProvider基类实现配方自动化生成,支持多步骤序列化装配配方(SequencedAssemblyRecipeGen),采用建造者模式链式调用; 注册管理:CreateRegistrate扩展了Registrate库,统一管理方块、流体、实体等注册,集成标签页分类和工具提示定制; 伤害系统:DamageTypeTagGen为机械伤害(如钻头、风扇火焰)定义原版兼容的标签; 客户端

qq_24992377的博客 2083

2018安徽省青少年信息学奥林匹克(AHOI)初中组

12 种合法的排列分别为:1, 3, 2, 4, 2, 3, 1, 4, 3, 1, 4, 2, 3, 2, 4, 1, 1, 3, 4, 2, 2, 3,4,1,1,4,2,3, 2,4,1,3, 4,1,3,2, 4,2,3,1, 1,4,3,2, 2,4,3,1。分为 2 组,一组的队员实力值是{4, 5, 2, 3},一组是{-4, -3, -5},其中最小的组人数为 3,可以发现没有比 3 更优的分法了。[0, 1, 1, 2]同样不是合法的分组方案,因为出现了两个实力值为 1 的选手。

weixin_42358969的博客 1143

使用py-solc时候应该注意的问题

在安装py-solc后,如果系统还没有安装solidity的话,会遇到以下的问题: File "/home/ubuntu/.local/lib/python2.7/site-packages/solc/wrapper.py", line 155, in solc_wrapper    stderr=subprocess.PIPE)  File "/usr/lib/python2.7/subproc...

Schetella的博客 1282

SAP-ABAP:SAP信贷管理核心:CL_UKM_BUPA_FACTORY类完整解析与实践指南

SAP信贷管理核心类CL_UKM_BUPA_FACTORY解析 CL_UKM_BUPA_FACTORY是SAP信贷管理(UKM)模块的核心类,作为业务伙伴信贷数据的中央控制台,它提供: 统一入口:标准化实例化客户/供应商信贷对象 主要功能: 获取单条/批量业务伙伴数据 安全保存数据变更 封装底层数据访问逻辑 典型应用场景: 信贷主数据批量维护 自动化限额调整 订单信贷实时检查 性能优化建议: 使用批量方法替代循环单条处理 合理设置字段选择 实施缓存策略 该类通过简洁API简化复杂信贷操作,是SAP信贷管理开

baidu_35680696的博客 1209

py-solc 项目使用教程

py-solc 项目使用教程 1. 项目的目录结构及介绍 py-solc 是一个用于与 Solidity 编译器 solc 进行交互的 Python 包装库。以下是该项目的目录结构及其介绍: py-solc/ ├── docs/ │ ├── source/ │ │ ├── conf.py │ │ ├── index.rst │ │ └── ... │ └── ......

gitblog_00659的博客 327

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ubuntu22.04安装solc-select(1.0.4)遇到的问题

笔者想要编译solidity代码,需要solc编译器,为了方便solc编译器的管理,下载solc-select(solc编译器的管理包,可以实现安装不同版本的solc编译器以及其版本切换)解决:使用dns.adguard.com做为DNS服务器,已解决GitHub raw文件(raw.githubusercontent.com)时的网络问题。该问题在:https://github.com/crytic/solc-select/issues/205有描述,如下图所示。1.下载solc-select。

qq_65545582的博客 723

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Vscode无法识别Py-Solc-x库

在上述代码中,我们首先定义了一个包含Solidity合约的字典,然后使用compile_files函数来编译这个文件。最后,我们打印出了每个合约的字节码和ABI。接下来,我们可以使用Python的py-solc-x库来进行一些基本的操作。注意:在使用py-solc-x时,你需要确保你正在使用的Solidity版本与指定的版本匹配。如果不是,你将无法成功编译你的合约。首先,你需要确保你已经安装了Python和Pip。如果输出没有错误信息,那么就表示你已经成功安装了Py-Solc-x。

373

如何使用 Web3.py 与 Polkadot Hub 进行交互

本文介绍了使用Web3.py与PolkadotHub区块链交互的完整流程。主要内容包括:1) 项目初始化与环境配置;2) 设置Web3Provider连接区块链节点;3) 使用py-solc-x编译Solidity智能合约;4) 合约部署流程及注意事项;5) 与已部署合约的交互方法。文章通过Storage合约示例,详细展示了从编译、部署到调用的全流程操作步骤,并提供了完整的Python代码实现。特别强调了私钥安全等注意事项,为开发者提供了实用的区块链交互指南。

devmoon的博客 1139

【亲测免费】 探索智能合约开发的新利器:py-solc

探索智能合约开发的新利器:py-solc 在区块链技术的浪潮中,智能合约作为其核心组成部分,正逐渐成为开发者关注的焦点。今天,我们将介绍一个强大的工具——py-solc,这是一个围绕solc Solidity编译器的Python封装库,它为开发者提供了一个高效、便捷的方式来编译Solidity代码。 项目介绍 py-solc是一个开源的Python库,旨在简化Solidity编译过程。通过这个库,...

gitblog_00064的博客 970

Windows下python-web3.py、geth、solc的安装使用以及简单的私链连接和智能合约的部署

文章目录一、环境准备geth的安装及简单使用一、安装二、使用1. 创建私链2. 初始化创世区块3. 启动私有链4. Geth 使用1、查询账户列表2、创建新账户3、查询账户余额4、启动或停止挖矿5、解锁账户6、发送以太安装python3.8和安装web3.py安装nodejs以及solc 一、环境准备 使用的环境包括: geth python3.8 web3.py solc geth的安装及简单使用 一、安装 地址:https://geth.ethereum.org/downloads/ 找到对应的操作

17902的博客 5048

【探索智能合约新天地】:深入浅出py-solc-x——你的Solidity编译神器

【探索智能合约新天地】:深入浅出py-solc-x——你的Solidity编译神器 py-solc-xPython wrapper and version management tool for the solc Solidity compiler.项目地址:https://gitcode.com/gh_mirrors/py/py-solc-x 在这个区块链技术日益壮大的时代,智能合约作为其核心...

gitblog_00006的博客 404

使用Python(Web3.py)编译智能合约中的版本问题

py-solc与solc的版本对应问题

Mr.Yi的博客 964
上一篇: laravel+七牛云的存储
下一篇: centos+flask+uwsgi+nginx 的搭建
hong___=
博客等级 码龄10年 1粉丝 13原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值