GithubHelp home page GithubHelp logo

taps's Introduction

TAPS (Tezos Automatic Payment System)

TAPS enables Tezos Bakers to automate rewards distribution with a web-page like interface.

It is written in CFML language (Coldfusion/Lucee). This repository contains all needed source code to run. However, there are some requirements.

Getting started

To use this software you need to be a Tezos Baker with good experience. Follow the installation instructions below. Two articles may be a good start:

Bakers on Holiday

Installing Tezos TAPS

TAPS Installation

  1. Download Lucee Server from https://download.lucee.org/

  2. Download H2 Database from Lucee Extensions https://download.lucee.org/

  3. Install Lucee.

    • Get root privileges for the download folder, click with right mouse button over Lucee icon and choose OPEN.
    • Go through Lucee setup wizard, maintaining default installation options.
    • Choose a password for Lucee administration and write it down in a piece of paper.
    • Configure Lucee to start at every boot.
    • DON'T install Apache connector. We will use Lucee only for localhost (not Internet).
    • After Lucee installation, test it in browser with: http://127.0.0.1:8888/

    You can start/stop Lucee Application Server with:

    sudo /opt/lucee/lucee_ctl [start] [stop]
    
  4. Install H2 Database.

    • Copy the downloaded file /home/[user]/downloads/org.h2-1.3.172.lex to folder /opt/lucee/tomcat/lucee-server/deploy/
    • Wait a minute. Lucee detects the extension and installs it automatically. That's it!
  5. On Command Line Interface, go to folder (CD): /opt/lucee/tomcat/webapps (Debian) or /opt/lucee/tomcat/webapps/ROOT (UBUNTU).

  6. Install TAPS.

    Note: On (some) UBUNTU installations TAPS folder must be in /opt/lucee/tomcat/webapps/ROOT/

  7. Usage.

    • Go to TAPS SETUP page and enter your Baker's details. TAPS starts in simulation mode, so, don't worry, any real transfers will be done.

Upgrading TAPS

These step-by-step instructions should be followed if you already have Taps installed on your system and want to UPGRADE to a new version available at gitHub:

  1. (Always!) Write down in a piece of paper your Taps Native Wallet mnemonic words and passphrase.

  2. Stop Lucee server with the command: sudo /opt/lucee/lucee_ctl stop

  3. Backup your current Taps folder (/opt/lucee/tomcat/webapps/taps or /opt/lucee/tomcat/webapps/ROOT/taps) to some directory outside Lucee directory tree (this way if things go wrong, you may undo).

  4. Open a Terminal prompt and go to current Taps folder: cd /opt/lucee/tomcat/webapps/taps

  5. Now we are going to update it from github repository with the commands:

    sudo git fetch --all

    sudo git reset --hard origin/master

  6. Start Lucee with the command: sudo /opt/lucee/lucee_ctl start

  7. Open Taps from your preferred browser with: http://127.0.0.1:8888/taps/index.cfm. It should now show the latest version.

Disclaimer

This software is at Beta stage. It is currently experimental and still under development. Many features are not fully tested/implemented yet.

Resources

  • Issues — To report issues, submit pull requests and get involved (see MIT License)

Features

  • Native Wallet: Can be used as the funds resource to pay rewards to delegators.
  • Automatically distributes Tezos rewards to delegators when a cycle change happens.
  • User/Password protected access.
  • Custom individual delegator fee definition.
  • Generates payment logs.
  • Stores payments history.
  • (NEW!) Batch Transaction Payments!
  • (NEW!) Bond Pool configuration and automatic payments!
  • (FIXED) Six decimal places accuracy payment - Solves "So-So" annotation on BakingBad.
  • (FIXED) Page "PAYMENTS" and PDF report were showing 2 decimal places.
  • (NEW!) Custom batch manual payments with CSV file importing - Community Funded Feature (by CryptoDelegate baker).
  • (FIXED) Now compatible with Granada protocol.

Credits

  • TAPS is a Tezos.Rio team open-source product.

License

TAPS is available under the MIT License.

taps's People

Contributors

tezosrio avatar lmilfont avatar

Stargazers

Jascha avatar Will Pankiewicz avatar Tomasz Waszczyk avatar Cosmin L. Neagu avatar Leo avatar  avatar Maksim Strebkov avatar MB avatar BumpyTale avatar Ruben avatar Edouard Lavidalle avatar Vladimir Tarasenko avatar echo avatar  avatar

Watchers

James Cloos avatar Ruben avatar

taps's Issues

quite a few errors in the advanced, rewards, delegators and fee's sections. same errors

Advanced tab
Lucee 5.3.3.62 Error (expression)

Message | Syntax Error, invalid Expression [Connection Failure]
Stacktrace | The Error Occurred in/opt/lucee/tomcat/webapps/taps/components/tezosGateway.cfc: line 1614: <!--- Constants --->15:16: 17: 18: called from /opt/lucee/tomcat/webapps/taps/components/tezosGateway.cfc: line 12called from /opt/lucee/tomcat/webapps/taps/advanced.cfm: line 73
Java Stacktrace | lucee.runtime.interpreter.InterpreterException: Syntax Error, invalid Expression [Connection Failure]  at lucee.runtime.interpreter.CFMLExpressionInterpreter.interpret(CFMLExpressionInterpreter.java:215)  at lucee.runtime.interpreter.CFMLExpressionInterpreter.interpret(CFMLExpressionInterpreter.java:193)  at lucee.runtime.functions.conversion.DeserializeJSON.call(DeserializeJSON.java:52)  at lucee.runtime.functions.conversion.DeserializeJSON.call(DeserializeJSON.java:48)  at components.tezosgateway_cfc$cf.initComponent(/components/tezosGateway.cfc:16)  at components.tezosgateway_cfc$cf.newInstance(/components/tezosGateway.cfc:12)  at lucee.runtime.component.ComponentLoader.initComponent(ComponentLoader.java:548)  at lucee.runtime.component.ComponentLoader._loadComponent(ComponentLoader.java:487)  at lucee.runtime.component.ComponentLoader.load(ComponentLoader.java:410)  at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:186)  at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:117)  at lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:79)  at lucee.runtime.PageContextImpl.loadComponent(PageContextImpl.java:3150)  at lucee.runtime.tag.Invoke.doComponent(Invoke.java:206)  at lucee.runtime.tag.Invoke.doEndTag(Invoke.java:186)  at advanced_cfm$cf.call(/advanced.cfm:73)  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:942)  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:834)  at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:216)  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2409)  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2399)  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2374)  at lucee.runtime.engine.Request.exe(Request.java:43)  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1109)  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1055)  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)  at mod_cfml.core.invoke(core.java:180)  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)  at java.base/java.lang.Thread.run(Unknown Source)
Timestamp | 11/19/20 3:47:46 PM JST

Rewards

Lucee 5.3.3.62 Error (expression)

Message | Syntax Error, invalid Expression [Connection Failure]
Stacktrace | The Error Occurred in/opt/lucee/tomcat/webapps/taps/components/tezosGateway.cfc: line 1614: <!--- Constants --->15:16: 17: 18: called from /opt/lucee/tomcat/webapps/taps/components/tezosGateway.cfc: line 12called from /opt/lucee/tomcat/webapps/taps/rewards.cfm: line 55
Java Stacktrace | lucee.runtime.interpreter.InterpreterException: Syntax Error, invalid Expression [Connection Failure]  at lucee.runtime.interpreter.CFMLExpressionInterpreter.interpret(CFMLExpressionInterpreter.java:215)  at lucee.runtime.interpreter.CFMLExpressionInterpreter.interpret(CFMLExpressionInterpreter.java:193)  at lucee.runtime.functions.conversion.DeserializeJSON.call(DeserializeJSON.java:52)  at lucee.runtime.functions.conversion.DeserializeJSON.call(DeserializeJSON.java:48)  at components.tezosgateway_cfc$cf.initComponent(/components/tezosGateway.cfc:16)  at components.tezosgateway_cfc$cf.newInstance(/components/tezosGateway.cfc:12)  at lucee.runtime.component.ComponentLoader.initComponent(ComponentLoader.java:548)  at lucee.runtime.component.ComponentLoader._loadComponent(ComponentLoader.java:487)  at lucee.runtime.component.ComponentLoader.load(ComponentLoader.java:410)  at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:186)  at lucee.runtime.component.ComponentLoader._search(ComponentLoader.java:117)  at lucee.runtime.component.ComponentLoader.searchComponent(ComponentLoader.java:79)  at lucee.runtime.PageContextImpl.loadComponent(PageContextImpl.java:3150)  at lucee.runtime.tag.Invoke.doComponent(Invoke.java:206)  at lucee.runtime.tag.Invoke.doEndTag(Invoke.java:186)  at rewards_cfm$cf.call(/rewards.cfm:55)  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:942)  at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:834)  at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:216)  at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:42)  at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2409)  at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2399)  at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2374)  at lucee.runtime.engine.Request.exe(Request.java:43)  at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1109)  at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1055)  at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)  at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)  at mod_cfml.core.invoke(core.java:180)  at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)  at java.base/java.lang.Thread.run(Unknown Source)
Timestamp | 11/19/20 3:48:31 PM JST

It doesn't recognize H2

I have the H2 extension installed on Lucee server, however, Taps tells me that is not present. What can I do?
Lucee: lucee-5.3.8.201
Taps: v1.2.3

image
image

Problem with Setup -> Node resources

Can't set up TAPS with my node.
When i set up :
Base dir : /home/user
Tezos node alias : test
Full path to tezos client binary : /home/user/tezos
I get message : TAPS was unable to run transfer command below:
/home/user/tezos/tezos-client --base-dir /home/user/.tezos-client transfer 1 from test to tz_key --fee 0.05 --dry-run

Other setup:
Base dir : /home/user/tezos
Tezos node alias : test
Full path to tezos client binary : /home/user/tezos
message : TAPS was unable to run transfer command below:
/home/user/tezos/tezos-client --base-dir /home/user/tezos/.tezos-client transfer 1 from test to tz_key --fee 0.05 --dry-run

With second set up i get almost correct path, if not that dot. I removed that dot in setup.cfm file. But no success.
Maybe it because such command requires password for encrypted key ?
Where i can find logs to find more detail error message?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.