@meterio/flex-framework
Version:
A library implements Meter Flex interface
44 lines • 3.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.newAccountVisitor = void 0;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aXNpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZyYW1ld29yay9hY2NvdW50LXZpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWlEO0FBQ2pELHFDQUFvQztBQUNwQyxrREFBOEM7QUFDOUMsNkJBQTRCO0FBRTVCLFNBQWdCLGlCQUFpQixDQUM3QixHQUFZLEVBQ1osSUFBWTtJQUVaLE9BQU87UUFDSCxJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQSxDQUFDLENBQUM7UUFDN0IsR0FBRyxFQUFFLEdBQUcsRUFBRTtZQUNOLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDVixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZELENBQUM7UUFDRCxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDZCxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUNsRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2QsSUFBSSxLQUFLLENBQUE7WUFDVCxJQUFJO2dCQUNBLEtBQUssR0FBRyxJQUFJLFNBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoRTtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE1BQU0sSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLDZCQUE2QixHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQTthQUN4RTtZQUNELE9BQU8sa0JBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLENBQUM7UUFDRCxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDYixJQUFJLEtBQUssQ0FBQTtZQUNULElBQUk7Z0JBQ0EsS0FBSyxHQUFHLElBQUksU0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQzdEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFBO2FBQ3hFO1lBQ0QsT0FBTywrQkFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDNUMsQ0FBQztLQUNKLENBQUE7QUFDTCxDQUFDO0FBbkNELDhDQW1DQyJ9
;