欢迎光临散文网 会员登陆 & 注册

马蹄链polygon智能合约开发丨polygon马蹄链dapp合约代币流动性挖矿分红系统开发详情版

2023-03-11 10:15 作者:bili_33032327742  | 我要投稿

  Dapps开发包括三个简单的步骤:


  在区块链网络上部署智能合约


  从部署的智能合约中读取数据


  将交易发送到部署的智能合约


  智能合约


  每个程序员都用他们最喜欢的编程语言执行了一个“hello world”程序,以了解运行该语言的基础知识。这是我们使用Solidity语言编写的简单的“hello world”版本的智能合约,我们可以在区块链上添加问候语并检索它。Solidity是编写智能合约最常用的语言,它编译为可以在节点上运行的以太坊虚拟机上执行的字节码。


  pragma solidity^0.5.7;


  contract greeter{


  string greeting;


  function greet(string memory _greeting)public{


  greeting=_greeting;


  }


  function getGreeting()public view returns(string memory){


  return greeting;


  }


  }


  您可以通过传递字符串值使用greet()方法添加问候语,并使用getGreting()方法检索问候语。


  1.在区块链网络上部署智能合约


  a)创建项目:开发方案及功能I59案例2OO7系统3O69


  mkdir pythonDapp


  cd pythonDapp


  truffle init


  成功初始化项目后,转到您的文件夹并在/contracts目录中创建greeter.sol文件。在网络上部署合约之前,我们必须编译它并构建工件。


  b)智能合约的编译:


  因此,对于编译,我们将使用Truffle solc编译器。在您的主目录中,运行以下命令:


  truffle compile


  (or)


  truffle.cmd compile#(for windows only)


  上面的命令将在/contracts目录中编译你的合约,并在/build目录中创建二进制工件文件greeter.json。


  c)部署合约:需求及源码部署唯:yy625019


  打开您的Python IDLE编辑器,并在主目录deploy.py中使用以下代码创建一个新文件,然后在您的目录中运行py deploy.py。


  import json


  from web3 importWeb3,HTTPProvider


  from web3.contract importConciseContract


  #web3.py instance


  w3=Web3(HTTPProvider("https://ropsten.infura.io/v3/<API key>"))


  print(w3.isConnected())


  key="<Private Key here with 0x prefix>"


  acct=w3.eth.account.privateKeyToAccount(key)


  #compile your smart contract with truffle first


  truffleFile=json.load(open('./build/contracts/greeter.json'))


  abi=truffleFile['abi']


  bytecode=truffleFile['bytecode']


  contract=w3.eth.contract(bytecode=bytecode,abi=abi)


  #building transaction


  construct_txn=contract.constructor().buildTransaction({


  'from':acct.address,


  'nonce':w3.eth.getTransactionCount(acct.address),


  'gas':1728712,


  'gasPrice':w3.toWei('21','gwei')})


  signed=acct.signTransaction(construct_txn)


  tx_hash=w3.eth.sendRawTransaction(signed.rawTransaction)


  print(tx_hash.hex())


  tx_receipt=w3.eth.waitForTransactionReceipt(tx_hash)


  print("Contract Deployed At:",tx_receipt['contractAddress'])


  导入的web3库和所有其他必需的模块


  通过指向Ropsten Infura节点启动web3提供程序


  添加了用于签署交易的帐户地址和私钥。不要忘记在代码中添加您的凭据。


  通过指向Truffle编译的工件文件greeter.json的abi和字节码启动合约实例


  添加了带有随机数、gas、gasPrice等参数的construct_txn。此处,gas是指交易应在以太坊中使用和支付的最大计算资源量。gasPrice是指在交易中使用该数量的gas时的最小Ether数量。to指的是您发送交易的地址。仅当您将Ether发送到帐户或智能合约时才需要to参数。


  使用我们的私钥签署交易并在网络上广播。


  在控制台中记录交易哈希和部署的合约地址。根据以太坊的说法,事务处理时间<20秒。所以你必须等待20秒才能获得部署的合约地址。您的后端现在已成功部署在以太坊区块链上。现在您可以使用此地址与您的智能合约进行交互。复制此合约地址。


马蹄链polygon智能合约开发丨polygon马蹄链dapp合约代币流动性挖矿分红系统开发详情版的评论 (共 条)

分享到微博请遵守国家法律