'use strict';
let ETHController = require("{{path_to_eth_connector}}/Controller.js");

{{#each methods}}
{{#ifEquals type "function"}}
{{#if constant}}
{{#ifHas ../allowed_methods (append 'get_' name)}}
/**
* @function
* @instance
* @param { {{name}}_get_params } {{name}}_get_params
* returns { Promise }
**/
exports.get_{{name}} = function({{name}}_get_params) {
    return new ETHController().get_{{name}}(
        {{name}}_get_params.from,
        {{#each inputs}} 
        {{../name}}_get_params["{{#if name}}{{name}}{{else}}{{type}}{{/if}}"],
        {{/each}}
    );
};
{{/ifHas}}
{{else }}
{{#ifHas ../allowed_methods (append 'post_' name)}}
/**
* @function
* @instance
* @param { {{name}}_post_params } {{name}}_post_params
* returns { Promise }
**/
exports.post_{{name}} = function({{name}}_post_params) {
    return new ETHController().post_{{name}}(
        {{name}}_post_params.from, 
        {{#if payable}} {{name}}_get_params.value, {{/if}}
        {{#each inputs}}
        {{../name}}_post_params["{{#if name}}{{name}}{{else}}{{type}}{{/if}}"],
        {{/each}}
    );
};
{{/ifHas}}
{{/if}}
{{/ifEquals}}
{{/each}}