请选择 进入手机版 | 继续访问电脑版

图文精华

【智能合约实战】-22-发送交易

2019-12-19 15:09| 发布者: Amuro| 查看: 34| 评论: 0

回顾一下,我们在之前所写的代码

import {ApiJsonRpcRpcError} from eosjs;

import {JsSignatureProvider}from eosjs/dist/eosjs-jssig;

 

//调用合约中的ActiondataValue是参数

async function takeAction (action,dataValue) {

const key = localStorage.getItem(cardgame_key)

const rpc =new JsonRpc(process.env.REACT_APP_EOS_HTTP_ENDPOINT)

const signatureProvider = new JsSignaturePiovider([key])

const api = new Api ({rpc,signatureProvider,textDecoder: new TextDecoder(),

textEncoder:new TextEncoder()})

}

 

class ApiService {

}

export default ApiService

 

所有这些参数客户端生成后需要发送请求。

 

ApiService.js-3

 

/**

--------------------------------------------------------

发送交易

account:合约名

name:action

authorization:用户权限,用于交易签名

--------------------------------------------------------

*/

try

 

let result =await api.transact({

      actions[{

                accountprocess.env.REACT_APP_EOS_CONTRACT_NAME,

                name:action,

                authorization:[{

                    actor:localStorage.getItem(cardgame_account),

                    permission:active,

                }],

                Data:dataValue

              }]

},{

  blocksBehind:3,

  ExpireSeconds:30

}

   )

  Return result

}catch(error){

     throw(error)

}

 

这其中包括合约名称,相应的权限,账户保存在本地的状态,参数,然后是超时时间30秒,以及blocksBehind——在几个区块之后确认。

 

import {ApiJsonRpcRpcError} from eosjs;

import {JsSignatureProvider}from eosjs/dist/eosjs-jssig;

 

//调用合约中的ActiondataValue是参数

async function takeAction (action,dataValue) {

const key = localStorage.getItem(cardgame_key)

const rpc =new JsonRpc(process.env.REACT_APP_EOS_HTTP_ENDPOINT)

const signatureProvider = new JsSignaturePiovider([key])

const api = new Api ({rpc,signatureProvider,textDecoder: new TextDecoder(),

textEncoder:new TextEncoder()})

}

 

class ApiService {

}

export default ApiService

 

try

 

let result =await api.transact({

      actions[{

                accountprocess.env.REACT_APP_EOS_CONTRACT_NAME,

                name:action,

                authorization:[{

                    actor:localStorage.getItem(cardgame_account),

                    permission:active,

                }],

                Data:dataValue

              }]

},{

  blocksBehind:3,

  ExpireSeconds:30

}

   )

  Return result

}catch(error){

     throw(error)

}

 

整个发送交易就是这么个写法。


鲜花

握手

雷人

路过

鸡蛋
精彩评论

沙发等你来坐!

发布文章
返回顶部