首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS Lambda上解锁帐户web3.js1.0

在AWS Lambda上解锁帐户web3.js1.0
EN

Ethereum用户
提问于 2019-03-24 08:08:58
回答 1查看 620关注 0票数 0

当试图解锁AWS Lambda上的帐户时,我收到以下错误消息:

代码语言:javascript
复制
Error: Node error: {"code":-32601,"message":"The method personal_unlockAccount does not exist/is not available"}
    at Function.validate (/var/task/node_modules/web3-providers/dist/web3-providers.cjs.js:111:18)
    at HttpProvider._callee$ (/var/task/node_modules/web3-providers/dist/web3-providers.cjs.js:674:61)
    at tryCatch (/var/task/node_modules/regenerator-runtime/runtime.js:45:40)
    at Generator.invoke [as _invoke] (/var/task/node_modules/regenerator-runtime/runtime.js:271:22)
    at Generator.prototype.(anonymous function) [as next] (/var/task/node_modules/regenerator-runtime/runtime.js:97:21)
    at asyncGeneratorStep (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
    at _next (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:25:9)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7)
代码语言:javascript
复制
'use strict';

const AWS = require('aws-sdk');
AWS.config.update({region: 'ap-northeast-1'});
const documentClient = new AWS.DynamoDB.DocumentClient();

const Web3 = require('web3');  
const web3 = new Web3(new Web3.providers.HttpProvider(process.env['INFURA_ENDPOINT']));
const abiSource = require('./lib/myToken.json');
const abi = abiSource.abi;
const contractAddress = process.env['CONTRACT_ADDRESS'];
const myToken = web3.eth.Contract(abi, contractAddress);

.
.
.

exports.handler = async (event, context) => {
  event = event.body || event;
  const senderAddress = event.sender_address;
  const privateKey = event.private_key;
  try{
    await web3.eth.personal.unlockAccount(senderAddress, privateKey, 600);
  }catch(error){
    console.log(error);
    return getResponse(200, 'Internal server error');
  }

  .
  .
  .
};

我的合同部署在Ropsten网络上,不过下面我有一些处理事务的代码,这会引发同样的错误。有什么想法可以解决这个/错误的原因吗?

节点版本: 8.0 Web3: 1.0.0-beta50 50

提前感谢!

EN

回答 1

Ethereum用户

发布于 2019-05-02 21:11:21

您需要为lambda安装一个web3层。有关如何做到这一点,请参见https://github.com/scenarex/web3-lambda-layer

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/68734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档