simonflex-framework
Version:
A library implements Meter Flex interface
43 lines • 3.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const event_visitor_1 = require("./event-visitor");
const method_1 = require("./method");
const abi_1 = require("@meterio/devkit/dist/abi");
const R = require("./rules");
function newAccountVisitor(ctx, addr) {
return {
get address() { return addr; },
get: () => {
return ctx.driver.getAccount(addr, ctx.trackedHead.id);
},
getCode: () => {
return ctx.driver.getCode(addr, ctx.trackedHead.id);
},
getStorage: key => {
key = R.test(key, R.bytes32, 'arg0').toLowerCase();
return ctx.driver.getStorage(addr, key, ctx.trackedHead.id);
},
method: jsonABI => {
let coder;
try {
coder = new abi_1.abi.Function(JSON.parse(JSON.stringify(jsonABI)));
}
catch (err) {
throw new R.BadParameter(`arg0: expected valid ABI (${err.message})`);
}
return method_1.newMethod(ctx, addr, coder);
},
event: jsonABI => {
let coder;
try {
coder = new abi_1.abi.Event(JSON.parse(JSON.stringify(jsonABI)));
}
catch (err) {
throw new R.BadParameter(`arg0: expected valid ABI (${err.message})`);
}
return event_visitor_1.newEventVisitor(ctx, addr, coder);
}
};
}
exports.newAccountVisitor = newAccountVisitor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aXNpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay9hY2NvdW50LXZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBaUQ7QUFDakQscUNBQW9DO0FBQ3BDLGtEQUE4QztBQUM5Qyw2QkFBNEI7QUFFNUIsU0FBZ0IsaUJBQWlCLENBQzdCLEdBQVksRUFDWixJQUFZO0lBRVosT0FBTztRQUNILElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFBLENBQUMsQ0FBQztRQUM3QixHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQ04sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUNWLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdkQsQ0FBQztRQUNELFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNkLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ2xELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQy9ELENBQUM7UUFDRCxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDZCxJQUFJLEtBQUssQ0FBQTtZQUNULElBQUk7Z0JBQ0EsS0FBSyxHQUFHLElBQUksU0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ2hFO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFBO2FBQ3hFO1lBQ0QsT0FBTyxrQkFBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDdEMsQ0FBQztRQUNELEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtZQUNiLElBQUksS0FBSyxDQUFBO1lBQ1QsSUFBSTtnQkFDQSxLQUFLLEdBQUcsSUFBSSxTQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDN0Q7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDVixNQUFNLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyw2QkFBNkIsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUE7YUFDeEU7WUFDRCxPQUFPLCtCQUFlLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUM1QyxDQUFDO0tBQ0osQ0FBQTtBQUNMLENBQUM7QUFuQ0QsOENBbUNDIn0=