Documentation
¶
Overview ¶
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Package transaction include:
- Validate
- ApplyConfirmed
- ApplyUnconfirmed
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
ZooBC Copyright (C) 2020 Quasisoft Limited - Hong Kong This file is part of ZooBC <https://github.com/zoobc/zoobc-core>
ZooBC is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ZooBC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ZooBC. If not, see <http://www.gnu.org/licenses/>.
Additional Permission Under GNU GPL Version 3 section 7. As the special exception permitted under Section 7b, c and e, in respect with the Author’s copyright, please refer to this section:
- You are free to convey this Program according to GNU GPL Version 3, as long as you respect and comply with the Author’s copyright by showing in its user interface an Appropriate Notice that the derivate program and its source code are “powered by ZooBC”. This is an acknowledgement for the copyright holder, ZooBC, as the implementation of appreciation of the exclusive right of the creator and to avoid any circumvention on the rights under trademark law for use of some trade names, trademarks, or service marks.
- Complying to the GNU GPL Version 3, you may distribute the program without any permission from the Author. However a prior notification to the authors will be appreciated.
ZooBC is architected by Roberto Capodieci & Barton Johnston
contact us at roberto.capodieci[at]blockchainzoo.com and barton.johnston[at]blockchainzoo.com
Core developers that contributed to the current implementation of the software are:
Ahmad Ali Abdilah ahmad.abdilah[at]blockchainzoo.com Allan Bintoro allan.bintoro[at]blockchainzoo.com Andy Herman Gede Sukra Ketut Ariasa Nawi Kartini nawi.kartini[at]blockchainzoo.com Stefano Galassi stefano.galassi[at]blockchainzoo.com
IMPORTANT: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Index ¶
- func GetFixtureForFeeVoteCommitTransaction(feeVoteInfo *model.FeeVoteInfo, seed string) (txBody *model.FeeVoteCommitTransactionBody, txBodyBytes []byte)
- func GetFixtureForFeeVoteRevealTransaction(voteInfo *model.FeeVoteInfo, seed string) (body *model.FeeVoteRevealTransactionBody)
- func GetFixtureForSpecificTransaction(id, timestamp int64, sender, recipient []byte, bodyLength uint32, ...) (tx *model.Transaction, txBytes []byte)
- func GetFixturesForApprovalEscrowTransaction() (txBody *model.ApprovalEscrowTransactionBody, txBodyBytes []byte)
- func GetFixturesForBlock(height uint32, id int64) *model.Block
- func GetFixturesForClaimNoderegistration() (poown *model.ProofOfOwnership, ...)
- func GetFixturesForLiquidPaymentStopTransaction() (txBody *model.LiquidPaymentStopTransactionBody, txBodyBytes []byte)
- func GetFixturesForLiquidPaymentTransaction() (txBody *model.LiquidPaymentTransactionBody, txBodyBytes []byte)
- func GetFixturesForNoderegistration(nodeRegistrationQuery query.NodeRegistrationQueryInterface) (poownMessage *model.ProofOfOwnershipMessage, poown *model.ProofOfOwnership, ...)
- func GetFixturesForRemoveAccountDataset() (txBody *model.RemoveAccountDatasetTransactionBody, txBodyBytes []byte)
- func GetFixturesForRemoveNoderegistration() (txBody *model.RemoveNodeRegistrationTransactionBody, txBodyBytes []byte)
- func GetFixturesForSetupAccountDataset() (txBody *model.SetupAccountDatasetTransactionBody, txBodyBytes []byte)
- func GetFixturesForSignedMempoolTransaction(id, timestamp int64, sender, recipient []byte, escrow bool) *model.MempoolTransaction
- func GetFixturesForTransaction(timestamp int64, sender, recipient []byte, escrow bool) *model.Transaction
- func GetFixturesForTransactionBytes(tx *model.Transaction, sign bool) (txBytes []byte, hashed [32]byte)
- func GetFixturesForUpdateNoderegistration(nodeRegistrationQuery query.NodeRegistrationQueryInterface) (poownMessage *model.ProofOfOwnershipMessage, poown *model.ProofOfOwnership, ...)
- type AccountBalanceHelper
- func (abh *AccountBalanceHelper) AddAccountBalance(address []byte, amount int64, event model.EventType, blockHeight uint32, ...) error
- func (abh *AccountBalanceHelper) AddAccountSpendableBalance(address []byte, amount int64) error
- func (abh *AccountBalanceHelper) GetBalanceByAccountAddress(accountBalance *model.AccountBalance, address []byte, dbTx bool) error
- func (abh *AccountBalanceHelper) HasEnoughSpendableBalance(dbTX bool, address []byte, compareBalance int64) (enough bool, err error)
- type AccountBalanceHelperInterface
- type ApprovalEscrowTransaction
- func (tx *ApprovalEscrowTransaction) ApplyConfirmed(blockTimestamp int64) error
- func (tx *ApprovalEscrowTransaction) ApplyUnconfirmed() error
- func (tx *ApprovalEscrowTransaction) EscrowApplyConfirmed(int64) error
- func (tx *ApprovalEscrowTransaction) EscrowApplyUnconfirmed() error
- func (tx *ApprovalEscrowTransaction) EscrowApproval(int64, *model.ApprovalEscrowTransactionBody) error
- func (tx *ApprovalEscrowTransaction) EscrowUndoApplyUnconfirmed() error
- func (tx *ApprovalEscrowTransaction) EscrowValidate(dbTx bool) error
- func (tx *ApprovalEscrowTransaction) Escrowable() (EscrowTypeAction, bool)
- func (tx *ApprovalEscrowTransaction) GetAmount() int64
- func (tx *ApprovalEscrowTransaction) GetBodyBytes() ([]byte, error)
- func (tx *ApprovalEscrowTransaction) GetMinimumFee() (int64, error)
- func (*ApprovalEscrowTransaction) GetSize() (uint32, error)
- func (tx *ApprovalEscrowTransaction) GetTransactionBody(transaction *model.Transaction)
- func (tx *ApprovalEscrowTransaction) ParseBodyBytes(bodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *ApprovalEscrowTransaction) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *ApprovalEscrowTransaction) UndoApplyUnconfirmed() error
- func (tx *ApprovalEscrowTransaction) Validate(dbTx bool) error
- type ClaimNodeRegistration
- func (tx *ClaimNodeRegistration) ApplyConfirmed(blockTimestamp int64) error
- func (tx *ClaimNodeRegistration) ApplyUnconfirmed() error
- func (tx *ClaimNodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *ClaimNodeRegistration) EscrowApplyUnconfirmed() error
- func (tx *ClaimNodeRegistration) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *ClaimNodeRegistration) EscrowUndoApplyUnconfirmed() error
- func (tx *ClaimNodeRegistration) EscrowValidate(dbTX bool) error
- func (tx *ClaimNodeRegistration) Escrowable() (EscrowTypeAction, bool)
- func (tx *ClaimNodeRegistration) GetAmount() int64
- func (tx *ClaimNodeRegistration) GetBodyBytes() ([]byte, error)
- func (tx *ClaimNodeRegistration) GetMinimumFee() (int64, error)
- func (tx *ClaimNodeRegistration) GetSize() (uint32, error)
- func (tx *ClaimNodeRegistration) GetTransactionBody(transaction *model.Transaction)
- func (tx *ClaimNodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *ClaimNodeRegistration) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *ClaimNodeRegistration) UndoApplyUnconfirmed() error
- func (tx *ClaimNodeRegistration) Validate(dbTx bool) error
- type EscrowTypeAction
- type FeeVoteCommitTransaction
- func (tx *FeeVoteCommitTransaction) ApplyConfirmed(blockTimestamp int64) error
- func (tx *FeeVoteCommitTransaction) ApplyUnconfirmed() error
- func (tx *FeeVoteCommitTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
- func (tx *FeeVoteCommitTransaction) EscrowApplyUnconfirmed() (err error)
- func (tx *FeeVoteCommitTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
- func (tx *FeeVoteCommitTransaction) EscrowUndoApplyUnconfirmed() error
- func (tx *FeeVoteCommitTransaction) EscrowValidate(dbTx bool) (err error)
- func (tx *FeeVoteCommitTransaction) Escrowable() (EscrowTypeAction, bool)
- func (tx *FeeVoteCommitTransaction) GetAmount() int64
- func (tx *FeeVoteCommitTransaction) GetBodyBytes() ([]byte, error)
- func (tx *FeeVoteCommitTransaction) GetMinimumFee() (int64, error)
- func (tx *FeeVoteCommitTransaction) GetSize() (uint32, error)
- func (tx *FeeVoteCommitTransaction) GetTransactionBody(transaction *model.Transaction)
- func (tx *FeeVoteCommitTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *FeeVoteCommitTransaction) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *FeeVoteCommitTransaction) UndoApplyUnconfirmed() error
- func (tx *FeeVoteCommitTransaction) Validate(dbTx bool) error
- type FeeVoteRevealTransaction
- func (tx *FeeVoteRevealTransaction) ApplyConfirmed(blockTimestamp int64) (err error)
- func (tx *FeeVoteRevealTransaction) ApplyUnconfirmed() error
- func (tx *FeeVoteRevealTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
- func (tx *FeeVoteRevealTransaction) EscrowApplyUnconfirmed() (err error)
- func (tx *FeeVoteRevealTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
- func (tx *FeeVoteRevealTransaction) EscrowUndoApplyUnconfirmed() error
- func (tx *FeeVoteRevealTransaction) EscrowValidate(dbTx bool) (err error)
- func (tx *FeeVoteRevealTransaction) Escrowable() (EscrowTypeAction, bool)
- func (tx *FeeVoteRevealTransaction) GetAmount() int64
- func (tx *FeeVoteRevealTransaction) GetBodyBytes() ([]byte, error)
- func (tx *FeeVoteRevealTransaction) GetFeeVoteInfoBytes() []byte
- func (tx *FeeVoteRevealTransaction) GetMinimumFee() (int64, error)
- func (tx *FeeVoteRevealTransaction) GetSize() (uint32, error)
- func (tx *FeeVoteRevealTransaction) GetTransactionBody(transaction *model.Transaction)
- func (*FeeVoteRevealTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *FeeVoteRevealTransaction) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *FeeVoteRevealTransaction) UndoApplyUnconfirmed() error
- func (tx *FeeVoteRevealTransaction) Validate(dbTx bool) error
- type LiquidPaymentStopTransaction
- func (tx *LiquidPaymentStopTransaction) ApplyConfirmed(blockTimestamp int64) error
- func (tx *LiquidPaymentStopTransaction) ApplyUnconfirmed() error
- func (tx *LiquidPaymentStopTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
- func (tx *LiquidPaymentStopTransaction) EscrowApplyUnconfirmed() error
- func (tx *LiquidPaymentStopTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
- func (tx *LiquidPaymentStopTransaction) EscrowUndoApplyUnconfirmed() error
- func (tx *LiquidPaymentStopTransaction) EscrowValidate(dbTx bool) (err error)
- func (tx *LiquidPaymentStopTransaction) Escrowable() (EscrowTypeAction, bool)
- func (tx *LiquidPaymentStopTransaction) GetAmount() int64
- func (tx *LiquidPaymentStopTransaction) GetBodyBytes() ([]byte, error)
- func (tx *LiquidPaymentStopTransaction) GetMinimumFee() (int64, error)
- func (tx *LiquidPaymentStopTransaction) GetSize() (uint32, error)
- func (tx *LiquidPaymentStopTransaction) GetTransactionBody(transaction *model.Transaction)
- func (tx *LiquidPaymentStopTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *LiquidPaymentStopTransaction) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *LiquidPaymentStopTransaction) UndoApplyUnconfirmed() error
- func (tx *LiquidPaymentStopTransaction) Validate(dbTx bool) error
- type LiquidPaymentTransaction
- func (tx *LiquidPaymentTransaction) ApplyConfirmed(blockTimestamp int64) (err error)
- func (tx *LiquidPaymentTransaction) ApplyUnconfirmed() (err error)
- func (tx *LiquidPaymentTransaction) CompletePayment(blockHeight uint32, blockTimestamp, firstAppliedTimestamp int64) error
- func (tx *LiquidPaymentTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
- func (tx *LiquidPaymentTransaction) EscrowApplyUnconfirmed() (err error)
- func (tx *LiquidPaymentTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
- func (tx *LiquidPaymentTransaction) EscrowUndoApplyUnconfirmed() (err error)
- func (tx *LiquidPaymentTransaction) EscrowValidate(dbTx bool) (err error)
- func (tx *LiquidPaymentTransaction) Escrowable() (EscrowTypeAction, bool)
- func (tx *LiquidPaymentTransaction) GetAmount() int64
- func (tx *LiquidPaymentTransaction) GetBodyBytes() ([]byte, error)
- func (tx *LiquidPaymentTransaction) GetMinimumFee() (int64, error)
- func (tx *LiquidPaymentTransaction) GetSize() (uint32, error)
- func (tx *LiquidPaymentTransaction) GetTransactionBody(transaction *model.Transaction)
- func (tx *LiquidPaymentTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *LiquidPaymentTransaction) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *LiquidPaymentTransaction) UndoApplyUnconfirmed() (err error)
- func (tx *LiquidPaymentTransaction) Validate(dbTx bool) error
- type LiquidPaymentTransactionInterface
- type MultiSignatureTransaction
- func (tx *MultiSignatureTransaction) ApplyConfirmed(blockTimestamp int64) error
- func (tx *MultiSignatureTransaction) ApplyUnconfirmed() error
- func (tx *MultiSignatureTransaction) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *MultiSignatureTransaction) EscrowApplyUnconfirmed() error
- func (tx *MultiSignatureTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
- func (tx *MultiSignatureTransaction) EscrowUndoApplyUnconfirmed() error
- func (tx *MultiSignatureTransaction) EscrowValidate(dbTx bool) error
- func (tx *MultiSignatureTransaction) Escrowable() (EscrowTypeAction, bool)
- func (*MultiSignatureTransaction) GetAmount() int64
- func (tx *MultiSignatureTransaction) GetBodyBytes() ([]byte, error)
- func (tx *MultiSignatureTransaction) GetMinimumFee() (int64, error)
- func (tx *MultiSignatureTransaction) GetSize() (uint32, error)
- func (tx *MultiSignatureTransaction) GetTransactionBody(transaction *model.Transaction)
- func (tx *MultiSignatureTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (*MultiSignatureTransaction) SkipMempoolTransaction([]*model.Transaction, int64, uint32) (bool, error)
- func (tx *MultiSignatureTransaction) UndoApplyUnconfirmed() error
- func (tx *MultiSignatureTransaction) Validate(dbTx bool) error
- type MultisigTransactionUtil
- func (mtu *MultisigTransactionUtil) CheckMultisigComplete(transactionUtil UtilInterface, ...) ([]*model.MultiSignatureTransactionBody, error)
- func (*MultisigTransactionUtil) ValidateMultisignatureInfo(multisigInfo *model.MultiSignatureInfo) error
- func (mtu *MultisigTransactionUtil) ValidatePendingTransactionBytes(transactionUtil UtilInterface, typeSwitcher TypeActionSwitcher, ...) error
- func (mtu *MultisigTransactionUtil) ValidateSignatureInfo(signature crypto.SignatureInterface, signatureInfo *model.SignatureInfo, ...) error
- type MultisigTransactionUtilInterface
- type MultisignatureInfoHelper
- type MultisignatureInfoHelperInterface
- type NodeRegistration
- func (tx *NodeRegistration) ApplyConfirmed(blockTimestamp int64) error
- func (tx *NodeRegistration) ApplyUnconfirmed() error
- func (tx *NodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *NodeRegistration) EscrowApplyUnconfirmed() error
- func (tx *NodeRegistration) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *NodeRegistration) EscrowUndoApplyUnconfirmed() error
- func (tx *NodeRegistration) EscrowValidate(dbTx bool) error
- func (tx *NodeRegistration) Escrowable() (EscrowTypeAction, bool)
- func (tx *NodeRegistration) GetAmount() int64
- func (tx *NodeRegistration) GetBodyBytes() ([]byte, error)
- func (tx *NodeRegistration) GetMinimumFee() (int64, error)
- func (tx *NodeRegistration) GetSize() (uint32, error)
- func (tx *NodeRegistration) GetTransactionBody(transaction *model.Transaction)
- func (tx *NodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *NodeRegistration) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *NodeRegistration) UndoApplyUnconfirmed() error
- func (tx *NodeRegistration) Validate(dbTx bool) error
- type PendingTransactionHelper
- func (pth *PendingTransactionHelper) ApplyConfirmedPendingTransaction(pendingTransactionBytes []byte, txHeight uint32, blockTimestamp int64) (*model.Transaction, error)
- func (pth *PendingTransactionHelper) ApplyUnconfirmedPendingTransaction(pendingTransactionBytes []byte) error
- func (pth *PendingTransactionHelper) GetPendingTransactionByHash(pendingTx *model.PendingTransaction, pendingTransactionHash []byte, ...) error
- func (pth *PendingTransactionHelper) GetPendingTransactionBySenderAddress(senderAddress []byte, txHeight uint32) ([]*model.PendingTransaction, error)
- func (pth *PendingTransactionHelper) InsertPendingTransaction(pendingTransaction *model.PendingTransaction) error
- func (pth *PendingTransactionHelper) UndoApplyUnconfirmedPendingTransaction(pendingTransactionBytes []byte) error
- type PendingTransactionHelperInterface
- type RemoveAccountDataset
- func (tx *RemoveAccountDataset) ApplyConfirmed(blockTimestamp int64) error
- func (tx *RemoveAccountDataset) ApplyUnconfirmed() error
- func (tx *RemoveAccountDataset) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *RemoveAccountDataset) EscrowApplyUnconfirmed() error
- func (tx *RemoveAccountDataset) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *RemoveAccountDataset) EscrowUndoApplyUnconfirmed() error
- func (tx *RemoveAccountDataset) EscrowValidate(dbTx bool) error
- func (tx *RemoveAccountDataset) Escrowable() (EscrowTypeAction, bool)
- func (tx *RemoveAccountDataset) GetAmount() int64
- func (tx *RemoveAccountDataset) GetBodyBytes() ([]byte, error)
- func (tx *RemoveAccountDataset) GetMinimumFee() (int64, error)
- func (tx *RemoveAccountDataset) GetSize() (uint32, error)
- func (tx *RemoveAccountDataset) GetTransactionBody(transaction *model.Transaction)
- func (tx *RemoveAccountDataset) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *RemoveAccountDataset) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *RemoveAccountDataset) UndoApplyUnconfirmed() error
- func (tx *RemoveAccountDataset) Validate(dbTx bool) error
- type RemoveNodeRegistration
- func (tx *RemoveNodeRegistration) ApplyConfirmed(blockTimestamp int64) error
- func (tx *RemoveNodeRegistration) ApplyUnconfirmed() error
- func (tx *RemoveNodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *RemoveNodeRegistration) EscrowApplyUnconfirmed() error
- func (tx *RemoveNodeRegistration) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *RemoveNodeRegistration) EscrowUndoApplyUnconfirmed() error
- func (tx *RemoveNodeRegistration) EscrowValidate(dbTx bool) error
- func (tx *RemoveNodeRegistration) Escrowable() (EscrowTypeAction, bool)
- func (tx *RemoveNodeRegistration) GetAmount() int64
- func (tx *RemoveNodeRegistration) GetBodyBytes() ([]byte, error)
- func (tx *RemoveNodeRegistration) GetMinimumFee() (int64, error)
- func (tx *RemoveNodeRegistration) GetSize() (uint32, error)
- func (tx *RemoveNodeRegistration) GetTransactionBody(transaction *model.Transaction)
- func (tx *RemoveNodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *RemoveNodeRegistration) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *RemoveNodeRegistration) UndoApplyUnconfirmed() error
- func (tx *RemoveNodeRegistration) Validate(dbTx bool) error
- type SendZBC
- func (tx *SendZBC) ApplyConfirmed(blockTimestamp int64) error
- func (tx *SendZBC) ApplyUnconfirmed() error
- func (tx *SendZBC) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *SendZBC) EscrowApplyUnconfirmed() error
- func (tx *SendZBC) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *SendZBC) EscrowUndoApplyUnconfirmed() error
- func (tx *SendZBC) EscrowValidate(dbTx bool) error
- func (tx *SendZBC) Escrowable() (EscrowTypeAction, bool)
- func (tx *SendZBC) GetAmount() int64
- func (tx *SendZBC) GetBodyBytes() ([]byte, error)
- func (tx *SendZBC) GetMinimumFee() (int64, error)
- func (*SendZBC) GetSize() (uint32, error)
- func (tx *SendZBC) GetTransactionBody(transaction *model.Transaction)
- func (tx *SendZBC) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *SendZBC) SkipMempoolTransaction([]*model.Transaction, int64, uint32) (bool, error)
- func (tx *SendZBC) UndoApplyUnconfirmed() error
- func (tx *SendZBC) Validate(dbTx bool) error
- type SetupAccountDataset
- func (tx *SetupAccountDataset) ApplyConfirmed(blockTimestamp int64) error
- func (tx *SetupAccountDataset) ApplyUnconfirmed() error
- func (tx *SetupAccountDataset) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *SetupAccountDataset) EscrowApplyUnconfirmed() error
- func (tx *SetupAccountDataset) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *SetupAccountDataset) EscrowUndoApplyUnconfirmed() error
- func (tx *SetupAccountDataset) EscrowValidate(dbTx bool) error
- func (tx *SetupAccountDataset) Escrowable() (EscrowTypeAction, bool)
- func (tx *SetupAccountDataset) GetAmount() int64
- func (tx *SetupAccountDataset) GetBodyBytes() ([]byte, error)
- func (tx *SetupAccountDataset) GetMinimumFee() (int64, error)
- func (tx *SetupAccountDataset) GetSize() (uint32, error)
- func (tx *SetupAccountDataset) GetTransactionBody(transaction *model.Transaction)
- func (tx *SetupAccountDataset) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *SetupAccountDataset) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *SetupAccountDataset) UndoApplyUnconfirmed() error
- func (tx *SetupAccountDataset) Validate(dbTx bool) error
- type SignatureInfoHelper
- type SignatureInfoHelperInterface
- type TXEmpty
- func (tx *TXEmpty) ApplyConfirmed(int64) error
- func (tx *TXEmpty) ApplyUnconfirmed() error
- func (tx *TXEmpty) Escrowable() (EscrowTypeAction, bool)
- func (*TXEmpty) GetAmount() int64
- func (*TXEmpty) GetBodyBytes() ([]byte, error)
- func (*TXEmpty) GetMinimumFee() (int64, error)
- func (tx *TXEmpty) GetSize() (uint32, error)
- func (*TXEmpty) GetTransactionBody(*model.Transaction)
- func (*TXEmpty) ParseBodyBytes([]byte) (model.TransactionBodyInterface, error)
- func (tx *TXEmpty) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *TXEmpty) UndoApplyUnconfirmed() error
- func (tx *TXEmpty) Validate(bool) error
- type TransactionHelper
- type TransactionHelperInterface
- type TypeAction
- type TypeActionSwitcher
- type TypeSwitcher
- type UpdateNodeRegistration
- func (tx *UpdateNodeRegistration) ApplyConfirmed(blockTimestamp int64) error
- func (tx *UpdateNodeRegistration) ApplyUnconfirmed() error
- func (tx *UpdateNodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
- func (tx *UpdateNodeRegistration) EscrowApplyUnconfirmed() error
- func (tx *UpdateNodeRegistration) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) error
- func (tx *UpdateNodeRegistration) EscrowUndoApplyUnconfirmed() error
- func (tx *UpdateNodeRegistration) EscrowValidate(dbTx bool) error
- func (tx *UpdateNodeRegistration) Escrowable() (EscrowTypeAction, bool)
- func (tx *UpdateNodeRegistration) GetAmount() int64
- func (tx *UpdateNodeRegistration) GetBodyBytes() ([]byte, error)
- func (tx *UpdateNodeRegistration) GetMinimumFee() (int64, error)
- func (tx *UpdateNodeRegistration) GetSize() (uint32, error)
- func (tx *UpdateNodeRegistration) GetTransactionBody(transaction *model.Transaction)
- func (tx *UpdateNodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
- func (tx *UpdateNodeRegistration) SkipMempoolTransaction(selectedTransactions []*model.Transaction, newBlockTimestamp int64, ...) (bool, error)
- func (tx *UpdateNodeRegistration) UndoApplyUnconfirmed() error
- func (tx *UpdateNodeRegistration) Validate(dbTx bool) error
- type Util
- func (u *Util) GenerateMultiSigAddress(info *model.MultiSignatureInfo) ([]byte, error)
- func (*Util) GetTransactionBytes(transaction *model.Transaction, signed bool) ([]byte, error)
- func (*Util) GetTransactionID(transactionHash []byte) (int64, error)
- func (u *Util) ParseTransactionBytes(transactionBytes []byte, sign bool) (*model.Transaction, error)
- func (u *Util) ValidateTransaction(tx *model.Transaction, typeAction TypeAction, verifySignature bool) error
- type UtilInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetFixtureForFeeVoteCommitTransaction ¶
func GetFixtureForFeeVoteCommitTransaction( feeVoteInfo *model.FeeVoteInfo, seed string, ) (txBody *model.FeeVoteCommitTransactionBody, txBodyBytes []byte)
func GetFixtureForFeeVoteRevealTransaction ¶
func GetFixtureForFeeVoteRevealTransaction( voteInfo *model.FeeVoteInfo, seed string, ) (body *model.FeeVoteRevealTransactionBody)
func GetFixtureForSpecificTransaction ¶
func GetFixtureForSpecificTransaction( id, timestamp int64, sender, recipient []byte, bodyLength uint32, transactionType model.TransactionType, transactionBody model.TransactionBodyInterface, escrow, sign bool, ) (tx *model.Transaction, txBytes []byte)
func GetFixturesForApprovalEscrowTransaction ¶
func GetFixturesForApprovalEscrowTransaction() ( txBody *model.ApprovalEscrowTransactionBody, txBodyBytes []byte, )
func GetFixturesForClaimNoderegistration ¶
func GetFixturesForClaimNoderegistration() ( poown *model.ProofOfOwnership, txBody *model.ClaimNodeRegistrationTransactionBody, txBodyBytes []byte, )
func GetFixturesForLiquidPaymentStopTransaction ¶
func GetFixturesForLiquidPaymentStopTransaction() ( txBody *model.LiquidPaymentStopTransactionBody, txBodyBytes []byte, )
func GetFixturesForLiquidPaymentTransaction ¶
func GetFixturesForLiquidPaymentTransaction() ( txBody *model.LiquidPaymentTransactionBody, txBodyBytes []byte, )
func GetFixturesForNoderegistration ¶
func GetFixturesForNoderegistration(nodeRegistrationQuery query.NodeRegistrationQueryInterface) ( poownMessage *model.ProofOfOwnershipMessage, poown *model.ProofOfOwnership, txBody *model.NodeRegistrationTransactionBody, txBodyBytes []byte, )
func GetFixturesForRemoveAccountDataset ¶
func GetFixturesForRemoveAccountDataset() ( txBody *model.RemoveAccountDatasetTransactionBody, txBodyBytes []byte, )
func GetFixturesForRemoveNoderegistration ¶
func GetFixturesForRemoveNoderegistration() ( txBody *model.RemoveNodeRegistrationTransactionBody, txBodyBytes []byte, )
func GetFixturesForSetupAccountDataset ¶
func GetFixturesForSetupAccountDataset() ( txBody *model.SetupAccountDatasetTransactionBody, txBodyBytes []byte, )
func GetFixturesForSignedMempoolTransaction ¶
func GetFixturesForSignedMempoolTransaction( id, timestamp int64, sender, recipient []byte, escrow bool, ) *model.MempoolTransaction
func GetFixturesForTransaction ¶
func GetFixturesForTransaction( timestamp int64, sender, recipient []byte, escrow bool, ) *model.Transaction
func GetFixturesForTransactionBytes ¶
func GetFixturesForTransactionBytes(tx *model.Transaction, sign bool) (txBytes []byte, hashed [32]byte)
func GetFixturesForUpdateNoderegistration ¶
func GetFixturesForUpdateNoderegistration(nodeRegistrationQuery query.NodeRegistrationQueryInterface) ( poownMessage *model.ProofOfOwnershipMessage, poown *model.ProofOfOwnership, txBody *model.UpdateNodeRegistrationTransactionBody, txBodyBytes []byte, )
Types ¶
type AccountBalanceHelper ¶
type AccountBalanceHelper struct { AccountBalanceQuery query.AccountBalanceQueryInterface AccountLedgerQuery query.AccountLedgerQueryInterface QueryExecutor query.ExecutorInterface // contains filtered or unexported fields }
AccountBalanceHelper fields for AccountBalanceHelperInterface for transaction helper
func NewAccountBalanceHelper ¶
func NewAccountBalanceHelper( queryExecutor query.ExecutorInterface, accountBalanceQuery query.AccountBalanceQueryInterface, accountLedgerQuery query.AccountLedgerQueryInterface, ) *AccountBalanceHelper
func (*AccountBalanceHelper) AddAccountBalance ¶
func (abh *AccountBalanceHelper) AddAccountBalance( address []byte, amount int64, event model.EventType, blockHeight uint32, transactionID int64, blockTimestamp uint64, ) error
AddAccountBalance add balance and spendable_balance field to the address provided at blockHeight, must be executed inside db transaction scope, there process is:
- Add new record into account_balance
- Add new record into account_ledger
func (*AccountBalanceHelper) AddAccountSpendableBalance ¶
func (abh *AccountBalanceHelper) AddAccountSpendableBalance(address []byte, amount int64) error
AddAccountSpendableBalance add spendable_balance field to the address provided, must be executed inside db transaction scope
func (*AccountBalanceHelper) GetBalanceByAccountAddress ¶
func (abh *AccountBalanceHelper) GetBalanceByAccountAddress(accountBalance *model.AccountBalance, address []byte, dbTx bool) error
GetBalanceByAccountAddress fetching the balance of an account from database
func (*AccountBalanceHelper) HasEnoughSpendableBalance ¶
func (abh *AccountBalanceHelper) HasEnoughSpendableBalance(dbTX bool, address []byte, compareBalance int64) (enough bool, err error)
HasEnoughSpendableBalance check if account has enough has spendable balance and will save
type AccountBalanceHelperInterface ¶
type AccountBalanceHelperInterface interface { AddAccountSpendableBalance(address []byte, amount int64) error AddAccountBalance(address []byte, amount int64, event model.EventType, blockHeight uint32, transactionID int64, blockTimestamp uint64) error GetBalanceByAccountAddress(accountBalance *model.AccountBalance, address []byte, dbTx bool) error HasEnoughSpendableBalance(dbTX bool, address []byte, compareBalance int64) (enough bool, err error) }
AccountBalanceHelperInterface methods collection for transaction helper, it for account balance stuff and account ledger also It better to use with QueryExecutor.BeginTX()
type ApprovalEscrowTransaction ¶
type ApprovalEscrowTransaction struct { TransactionObject *model.Transaction Body *model.ApprovalEscrowTransactionBody BlockQuery query.BlockQueryInterface EscrowQuery query.EscrowTransactionQueryInterface QueryExecutor query.ExecutorInterface TransactionQuery query.TransactionQueryInterface TypeActionSwitcher TypeActionSwitcher AccountBalanceHelper AccountBalanceHelperInterface FeeScaleService fee.FeeScaleServiceInterface }
ApprovalEscrowTransaction field
func (*ApprovalEscrowTransaction) ApplyConfirmed ¶
func (tx *ApprovalEscrowTransaction) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed func that for applying Transaction SendZBC type. If Genesis perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount. If Not Genesis, perhaps sender and recipient is exists, so update `account_balance`, `recipient.balance` = current + amount and `sender.balance` = current - amount
func (*ApprovalEscrowTransaction) ApplyUnconfirmed ¶
func (tx *ApprovalEscrowTransaction) ApplyUnconfirmed() error
ApplyUnconfirmed exec before Confirmed
func (*ApprovalEscrowTransaction) EscrowApplyConfirmed ¶
func (tx *ApprovalEscrowTransaction) EscrowApplyConfirmed(int64) error
EscrowApplyConfirmed func that for applying Transaction SendZBC type.
func (*ApprovalEscrowTransaction) EscrowApplyUnconfirmed ¶
func (tx *ApprovalEscrowTransaction) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is applyUnconfirmed specific for Escrow's transaction similar with ApplyUnconfirmed and Escrow.Commission
func (*ApprovalEscrowTransaction) EscrowApproval ¶
func (tx *ApprovalEscrowTransaction) EscrowApproval(int64, *model.ApprovalEscrowTransactionBody) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*ApprovalEscrowTransaction) EscrowUndoApplyUnconfirmed ¶
func (tx *ApprovalEscrowTransaction) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*ApprovalEscrowTransaction) EscrowValidate ¶
func (tx *ApprovalEscrowTransaction) EscrowValidate(dbTx bool) error
EscrowValidate special validation for escrow's transaction
func (*ApprovalEscrowTransaction) Escrowable ¶
func (tx *ApprovalEscrowTransaction) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*ApprovalEscrowTransaction) GetAmount ¶
func (tx *ApprovalEscrowTransaction) GetAmount() int64
GetAmount return Amount from TransactionBody
func (*ApprovalEscrowTransaction) GetBodyBytes ¶
func (tx *ApprovalEscrowTransaction) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*ApprovalEscrowTransaction) GetMinimumFee ¶
func (tx *ApprovalEscrowTransaction) GetMinimumFee() (int64, error)
func (*ApprovalEscrowTransaction) GetSize ¶
func (*ApprovalEscrowTransaction) GetSize() (uint32, error)
GetSize of approval transaction body bytes
func (*ApprovalEscrowTransaction) GetTransactionBody ¶
func (tx *ApprovalEscrowTransaction) GetTransactionBody(transaction *model.Transaction)
GetTransactionBody append isTransaction_TransactionBody oneOf
func (*ApprovalEscrowTransaction) ParseBodyBytes ¶
func (tx *ApprovalEscrowTransaction) ParseBodyBytes( bodyBytes []byte, ) (model.TransactionBodyInterface, error)
ParseBodyBytes validate and parse body bytes to TransactionBody interface
func (*ApprovalEscrowTransaction) SkipMempoolTransaction ¶
func (tx *ApprovalEscrowTransaction) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction to filter out current Approval escrow transaction when this tx already expired based on new block height
func (*ApprovalEscrowTransaction) UndoApplyUnconfirmed ¶
func (tx *ApprovalEscrowTransaction) UndoApplyUnconfirmed() error
UndoApplyUnconfirmed func exec before confirmed
func (*ApprovalEscrowTransaction) Validate ¶
func (tx *ApprovalEscrowTransaction) Validate(dbTx bool) error
Validate is func that for validating to Transaction type. Check transaction fields, spendable balance and more
type ClaimNodeRegistration ¶
type ClaimNodeRegistration struct { TransactionObject *model.Transaction Body *model.ClaimNodeRegistrationTransactionBody NodeRegistrationQuery query.NodeRegistrationQueryInterface BlockQuery query.BlockQueryInterface QueryExecutor query.ExecutorInterface AuthPoown auth.NodeAuthValidationInterface EscrowQuery query.EscrowTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface FeeScaleService fee.FeeScaleServiceInterface NodeAddressInfoQuery query.NodeAddressInfoQueryInterface NodeAddressInfoStorage storage.TransactionalCache ActiveNodeRegistryCache storage.TransactionalCache }
ClaimNodeRegistration Implement service layer for claim node registration's transaction
func (*ClaimNodeRegistration) ApplyConfirmed ¶
func (tx *ClaimNodeRegistration) ApplyConfirmed(blockTimestamp int64) error
func (*ClaimNodeRegistration) ApplyUnconfirmed ¶
func (tx *ClaimNodeRegistration) ApplyUnconfirmed() error
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `ClaimNodeRegistration` type:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*ClaimNodeRegistration) EscrowApplyConfirmed ¶
func (tx *ClaimNodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
EscrowApplyConfirmed func that for applying pending escrow transaction.
func (*ClaimNodeRegistration) EscrowApplyUnconfirmed ¶
func (tx *ClaimNodeRegistration) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is func that for applying to unconfirmed Transaction `ClaimNodeRegistration` type:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*ClaimNodeRegistration) EscrowApproval ¶
func (tx *ClaimNodeRegistration) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*ClaimNodeRegistration) EscrowUndoApplyUnconfirmed ¶
func (tx *ClaimNodeRegistration) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed func that perform on apply confirm preparation
func (*ClaimNodeRegistration) EscrowValidate ¶
func (tx *ClaimNodeRegistration) EscrowValidate(dbTX bool) error
EscrowValidate validate node registration transaction and tx body
func (*ClaimNodeRegistration) Escrowable ¶
func (tx *ClaimNodeRegistration) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*ClaimNodeRegistration) GetAmount ¶
func (tx *ClaimNodeRegistration) GetAmount() int64
func (*ClaimNodeRegistration) GetBodyBytes ¶
func (tx *ClaimNodeRegistration) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*ClaimNodeRegistration) GetMinimumFee ¶
func (tx *ClaimNodeRegistration) GetMinimumFee() (int64, error)
func (*ClaimNodeRegistration) GetSize ¶
func (tx *ClaimNodeRegistration) GetSize() (uint32, error)
func (*ClaimNodeRegistration) GetTransactionBody ¶
func (tx *ClaimNodeRegistration) GetTransactionBody(transaction *model.Transaction)
func (*ClaimNodeRegistration) ParseBodyBytes ¶
func (tx *ClaimNodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*ClaimNodeRegistration) SkipMempoolTransaction ¶
func (tx *ClaimNodeRegistration) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out of the mempool a node registration tx if there are other node registration tx in mempool to make sure only one node registration tx at the time (the one with highest fee paid) makes it to the same block
func (*ClaimNodeRegistration) UndoApplyUnconfirmed ¶
func (tx *ClaimNodeRegistration) UndoApplyUnconfirmed() error
func (*ClaimNodeRegistration) Validate ¶
func (tx *ClaimNodeRegistration) Validate(dbTx bool) error
Validate validate node registration transaction and tx body
type EscrowTypeAction ¶
type EscrowTypeAction interface { // EscrowApplyConfirmed perhaps this method called with QueryExecutor.BeginTX() because inside this process has separated QueryExecutor.Execute EscrowApplyConfirmed(blockTimestamp int64) error EscrowApplyUnconfirmed() error EscrowUndoApplyUnconfirmed() error EscrowValidate(dbTx bool) error // EscrowApproval handle approval an escrow transaction, execute tasks that was skipped on EscrowApplyConfirmed. EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error }
EscrowTypeAction is escrow transaction type methods collection
type FeeVoteCommitTransaction ¶
type FeeVoteCommitTransaction struct { TransactionObject *model.Transaction Body *model.FeeVoteCommitTransactionBody FeeScaleService fee.FeeScaleServiceInterface NodeRegistrationQuery query.NodeRegistrationQueryInterface BlockQuery query.BlockQueryInterface FeeVoteCommitmentVoteQuery query.FeeVoteCommitmentVoteQueryInterface AccountBalanceHelper AccountBalanceHelperInterface QueryExecutor query.ExecutorInterface EscrowQuery query.EscrowTransactionQueryInterface }
FeeVoteCommitTransaction is Transaction Type that implemented TypeAction
func (*FeeVoteCommitTransaction) ApplyConfirmed ¶
func (tx *FeeVoteCommitTransaction) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed to apply confirmed transaction FeeVoteCommitTransaction type
func (*FeeVoteCommitTransaction) ApplyUnconfirmed ¶
func (tx *FeeVoteCommitTransaction) ApplyUnconfirmed() error
ApplyUnconfirmed to apply unconfirmed transaction FeeVoteCommitTransaction type
func (*FeeVoteCommitTransaction) EscrowApplyConfirmed ¶
func (tx *FeeVoteCommitTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
func (*FeeVoteCommitTransaction) EscrowApplyUnconfirmed ¶
func (tx *FeeVoteCommitTransaction) EscrowApplyUnconfirmed() (err error)
func (*FeeVoteCommitTransaction) EscrowApproval ¶
func (tx *FeeVoteCommitTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
func (*FeeVoteCommitTransaction) EscrowUndoApplyUnconfirmed ¶
func (tx *FeeVoteCommitTransaction) EscrowUndoApplyUnconfirmed() error
func (*FeeVoteCommitTransaction) EscrowValidate ¶
func (tx *FeeVoteCommitTransaction) EscrowValidate(dbTx bool) (err error)
func (*FeeVoteCommitTransaction) Escrowable ¶
func (tx *FeeVoteCommitTransaction) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Currently doesn't have escrow option
func (*FeeVoteCommitTransaction) GetAmount ¶
func (tx *FeeVoteCommitTransaction) GetAmount() int64
GetAmount return Amount from TransactionBody
func (*FeeVoteCommitTransaction) GetBodyBytes ¶
func (tx *FeeVoteCommitTransaction) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*FeeVoteCommitTransaction) GetMinimumFee ¶
func (tx *FeeVoteCommitTransaction) GetMinimumFee() (int64, error)
GetMinimumFee return minimum fee of transaction TODO: need to calculate the minimum fee
func (*FeeVoteCommitTransaction) GetSize ¶
func (tx *FeeVoteCommitTransaction) GetSize() (uint32, error)
GetSize is size of transaction body
func (*FeeVoteCommitTransaction) GetTransactionBody ¶
func (tx *FeeVoteCommitTransaction) GetTransactionBody(transaction *model.Transaction)
GetTransactionBody return transaction body of FeeVoteCommitTransaction transactions
func (*FeeVoteCommitTransaction) ParseBodyBytes ¶
func (tx *FeeVoteCommitTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*FeeVoteCommitTransaction) SkipMempoolTransaction ¶
func (tx *FeeVoteCommitTransaction) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out current fee commit vote tx when
- Current time is already not commit vote phase based on new block timestamp
- There are other tx fee commit vote with same sender in mempool
- Fee commit vote tx for current phase already exist in previous block
func (*FeeVoteCommitTransaction) UndoApplyUnconfirmed ¶
func (tx *FeeVoteCommitTransaction) UndoApplyUnconfirmed() error
UndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*FeeVoteCommitTransaction) Validate ¶
func (tx *FeeVoteCommitTransaction) Validate(dbTx bool) error
Validate to validating Transaction FeeVoteCommitTransaction type
type FeeVoteRevealTransaction ¶
type FeeVoteRevealTransaction struct { TransactionObject *model.Transaction Body *model.FeeVoteRevealTransactionBody FeeScaleService fee.FeeScaleServiceInterface SignatureInterface crypto.SignatureInterface BlockQuery query.BlockQueryInterface NodeRegistrationQuery query.NodeRegistrationQueryInterface FeeVoteCommitVoteQuery query.FeeVoteCommitmentVoteQueryInterface FeeVoteRevealVoteQuery query.FeeVoteRevealVoteQueryInterface AccountBalanceHelper AccountBalanceHelperInterface QueryExecutor query.ExecutorInterface EscrowQuery query.EscrowTransactionQueryInterface }
func (*FeeVoteRevealTransaction) ApplyConfirmed ¶
func (tx *FeeVoteRevealTransaction) ApplyConfirmed(blockTimestamp int64) (err error)
ApplyConfirmed applying transaction, will store ledger, account balance update, and also the transaction it self
func (*FeeVoteRevealTransaction) ApplyUnconfirmed ¶
func (tx *FeeVoteRevealTransaction) ApplyUnconfirmed() error
ApplyUnconfirmed to apply unconfirmed transaction
func (*FeeVoteRevealTransaction) EscrowApplyConfirmed ¶
func (tx *FeeVoteRevealTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
func (*FeeVoteRevealTransaction) EscrowApplyUnconfirmed ¶
func (tx *FeeVoteRevealTransaction) EscrowApplyUnconfirmed() (err error)
func (*FeeVoteRevealTransaction) EscrowApproval ¶
func (tx *FeeVoteRevealTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
func (*FeeVoteRevealTransaction) EscrowUndoApplyUnconfirmed ¶
func (tx *FeeVoteRevealTransaction) EscrowUndoApplyUnconfirmed() error
func (*FeeVoteRevealTransaction) EscrowValidate ¶
func (tx *FeeVoteRevealTransaction) EscrowValidate(dbTx bool) (err error)
func (*FeeVoteRevealTransaction) Escrowable ¶
func (tx *FeeVoteRevealTransaction) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Currently doesn't have escrow option
func (*FeeVoteRevealTransaction) GetAmount ¶
func (tx *FeeVoteRevealTransaction) GetAmount() int64
GetAmount return Amount from TransactionBody
func (*FeeVoteRevealTransaction) GetBodyBytes ¶
func (tx *FeeVoteRevealTransaction) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*FeeVoteRevealTransaction) GetFeeVoteInfoBytes ¶
func (tx *FeeVoteRevealTransaction) GetFeeVoteInfoBytes() []byte
GetFeeVoteInfoBytes will build bytes from model.FeeVoteInfo
func (*FeeVoteRevealTransaction) GetMinimumFee ¶
func (tx *FeeVoteRevealTransaction) GetMinimumFee() (int64, error)
GetMinimumFee calculate fee
func (*FeeVoteRevealTransaction) GetSize ¶
func (tx *FeeVoteRevealTransaction) GetSize() (uint32, error)
GetSize send zbc Amount should be 8
func (*FeeVoteRevealTransaction) GetTransactionBody ¶
func (tx *FeeVoteRevealTransaction) GetTransactionBody(transaction *model.Transaction)
GetTransactionBody append isTransaction_TransactionBody oneOf
func (*FeeVoteRevealTransaction) ParseBodyBytes ¶
func (*FeeVoteRevealTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*FeeVoteRevealTransaction) SkipMempoolTransaction ¶
func (tx *FeeVoteRevealTransaction) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out current fee reveal vote tx when
- Current time is already not reveal vote phase based on new block timestamp
- There are other tx fee reveal vote with same sender in mempool
- Fee reveal vote tx for current phase already exist in previous block
func (*FeeVoteRevealTransaction) UndoApplyUnconfirmed ¶
func (tx *FeeVoteRevealTransaction) UndoApplyUnconfirmed() error
UndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*FeeVoteRevealTransaction) Validate ¶
func (tx *FeeVoteRevealTransaction) Validate(dbTx bool) error
Validate for validating the transaction concerned
type LiquidPaymentStopTransaction ¶
type LiquidPaymentStopTransaction struct { TransactionObject *model.Transaction Body *model.LiquidPaymentStopTransactionBody QueryExecutor query.ExecutorInterface TransactionQuery query.TransactionQueryInterface LiquidPaymentTransactionQuery query.LiquidPaymentTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface TypeActionSwitcher TypeActionSwitcher EscrowQuery query.EscrowTransactionQueryInterface FeeScaleService fee.FeeScaleServiceInterface }
LiquidPaymentStopTransaction is Transaction Type that implemented TypeAction
func (*LiquidPaymentStopTransaction) ApplyConfirmed ¶
func (tx *LiquidPaymentStopTransaction) ApplyConfirmed(blockTimestamp int64) error
func (*LiquidPaymentStopTransaction) ApplyUnconfirmed ¶
func (tx *LiquidPaymentStopTransaction) ApplyUnconfirmed() error
func (*LiquidPaymentStopTransaction) EscrowApplyConfirmed ¶
func (tx *LiquidPaymentStopTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
func (*LiquidPaymentStopTransaction) EscrowApplyUnconfirmed ¶
func (tx *LiquidPaymentStopTransaction) EscrowApplyUnconfirmed() error
func (*LiquidPaymentStopTransaction) EscrowApproval ¶
func (tx *LiquidPaymentStopTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
func (*LiquidPaymentStopTransaction) EscrowUndoApplyUnconfirmed ¶
func (tx *LiquidPaymentStopTransaction) EscrowUndoApplyUnconfirmed() error
func (*LiquidPaymentStopTransaction) EscrowValidate ¶
func (tx *LiquidPaymentStopTransaction) EscrowValidate(dbTx bool) (err error)
func (*LiquidPaymentStopTransaction) Escrowable ¶
func (tx *LiquidPaymentStopTransaction) Escrowable() (EscrowTypeAction, bool)
func (*LiquidPaymentStopTransaction) GetAmount ¶
func (tx *LiquidPaymentStopTransaction) GetAmount() int64
func (*LiquidPaymentStopTransaction) GetBodyBytes ¶
func (tx *LiquidPaymentStopTransaction) GetBodyBytes() ([]byte, error)
func (*LiquidPaymentStopTransaction) GetMinimumFee ¶
func (tx *LiquidPaymentStopTransaction) GetMinimumFee() (int64, error)
func (*LiquidPaymentStopTransaction) GetSize ¶
func (tx *LiquidPaymentStopTransaction) GetSize() (uint32, error)
func (*LiquidPaymentStopTransaction) GetTransactionBody ¶
func (tx *LiquidPaymentStopTransaction) GetTransactionBody(transaction *model.Transaction)
func (*LiquidPaymentStopTransaction) ParseBodyBytes ¶
func (tx *LiquidPaymentStopTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
func (*LiquidPaymentStopTransaction) SkipMempoolTransaction ¶
func (tx *LiquidPaymentStopTransaction) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out of the mempool tx under specific condition
func (*LiquidPaymentStopTransaction) UndoApplyUnconfirmed ¶
func (tx *LiquidPaymentStopTransaction) UndoApplyUnconfirmed() error
func (*LiquidPaymentStopTransaction) Validate ¶
func (tx *LiquidPaymentStopTransaction) Validate(dbTx bool) error
type LiquidPaymentTransaction ¶
type LiquidPaymentTransaction struct { TransactionObject *model.Transaction Body *model.LiquidPaymentTransactionBody QueryExecutor query.ExecutorInterface LiquidPaymentTransactionQuery query.LiquidPaymentTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface EscrowQuery query.EscrowTransactionQueryInterface FeeScaleService fee.FeeScaleServiceInterface }
LiquidPaymentTransaction is Transaction Type that implemented TypeAction
func (*LiquidPaymentTransaction) ApplyConfirmed ¶
func (tx *LiquidPaymentTransaction) ApplyConfirmed(blockTimestamp int64) (err error)
func (*LiquidPaymentTransaction) ApplyUnconfirmed ¶
func (tx *LiquidPaymentTransaction) ApplyUnconfirmed() (err error)
func (*LiquidPaymentTransaction) CompletePayment ¶
func (tx *LiquidPaymentTransaction) CompletePayment(blockHeight uint32, blockTimestamp, firstAppliedTimestamp int64) error
func (*LiquidPaymentTransaction) EscrowApplyConfirmed ¶
func (tx *LiquidPaymentTransaction) EscrowApplyConfirmed(blockTimestamp int64) (err error)
func (*LiquidPaymentTransaction) EscrowApplyUnconfirmed ¶
func (tx *LiquidPaymentTransaction) EscrowApplyUnconfirmed() (err error)
func (*LiquidPaymentTransaction) EscrowApproval ¶
func (tx *LiquidPaymentTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
func (*LiquidPaymentTransaction) EscrowUndoApplyUnconfirmed ¶
func (tx *LiquidPaymentTransaction) EscrowUndoApplyUnconfirmed() (err error)
func (*LiquidPaymentTransaction) EscrowValidate ¶
func (tx *LiquidPaymentTransaction) EscrowValidate(dbTx bool) (err error)
func (*LiquidPaymentTransaction) Escrowable ¶
func (tx *LiquidPaymentTransaction) Escrowable() (EscrowTypeAction, bool)
func (*LiquidPaymentTransaction) GetAmount ¶
func (tx *LiquidPaymentTransaction) GetAmount() int64
func (*LiquidPaymentTransaction) GetBodyBytes ¶
func (tx *LiquidPaymentTransaction) GetBodyBytes() ([]byte, error)
func (*LiquidPaymentTransaction) GetMinimumFee ¶
func (tx *LiquidPaymentTransaction) GetMinimumFee() (int64, error)
func (*LiquidPaymentTransaction) GetSize ¶
func (tx *LiquidPaymentTransaction) GetSize() (uint32, error)
func (*LiquidPaymentTransaction) GetTransactionBody ¶
func (tx *LiquidPaymentTransaction) GetTransactionBody(transaction *model.Transaction)
func (*LiquidPaymentTransaction) ParseBodyBytes ¶
func (tx *LiquidPaymentTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
func (*LiquidPaymentTransaction) SkipMempoolTransaction ¶
func (tx *LiquidPaymentTransaction) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out of the mempool tx under specific condition
func (*LiquidPaymentTransaction) UndoApplyUnconfirmed ¶
func (tx *LiquidPaymentTransaction) UndoApplyUnconfirmed() (err error)
func (*LiquidPaymentTransaction) Validate ¶
func (tx *LiquidPaymentTransaction) Validate(dbTx bool) error
type MultiSignatureTransaction ¶
type MultiSignatureTransaction struct { TransactionObject *model.Transaction Body *model.MultiSignatureTransactionBody FeeScaleService fee.FeeScaleServiceInterface TransactionUtil UtilInterface TypeSwitcher TypeActionSwitcher Signature crypto.SignatureInterface EscrowQuery query.EscrowTransactionQueryInterface // multisig helpers MultisigUtil MultisigTransactionUtilInterface SignatureInfoHelper SignatureInfoHelperInterface MultisignatureInfoHelper MultisignatureInfoHelperInterface PendingTransactionHelper PendingTransactionHelperInterface // general helpers AccountBalanceHelper AccountBalanceHelperInterface TransactionHelper TransactionHelperInterface QueryExecutor query.ExecutorInterface }
MultiSignatureTransaction represent wrapper transaction type that require multiple signer to approve the transaction wrapped
func (*MultiSignatureTransaction) ApplyConfirmed ¶
func (tx *MultiSignatureTransaction) ApplyConfirmed(blockTimestamp int64) error
func (*MultiSignatureTransaction) ApplyUnconfirmed ¶
func (tx *MultiSignatureTransaction) ApplyUnconfirmed() error
func (*MultiSignatureTransaction) EscrowApplyConfirmed ¶
func (tx *MultiSignatureTransaction) EscrowApplyConfirmed(blockTimestamp int64) error
func (*MultiSignatureTransaction) EscrowApplyUnconfirmed ¶
func (tx *MultiSignatureTransaction) EscrowApplyUnconfirmed() error
func (*MultiSignatureTransaction) EscrowApproval ¶
func (tx *MultiSignatureTransaction) EscrowApproval(blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody) (err error)
func (*MultiSignatureTransaction) EscrowUndoApplyUnconfirmed ¶
func (tx *MultiSignatureTransaction) EscrowUndoApplyUnconfirmed() error
func (*MultiSignatureTransaction) EscrowValidate ¶
func (tx *MultiSignatureTransaction) EscrowValidate(dbTx bool) error
func (*MultiSignatureTransaction) Escrowable ¶
func (tx *MultiSignatureTransaction) Escrowable() (EscrowTypeAction, bool)
func (*MultiSignatureTransaction) GetAmount ¶
func (*MultiSignatureTransaction) GetAmount() int64
func (*MultiSignatureTransaction) GetBodyBytes ¶
func (tx *MultiSignatureTransaction) GetBodyBytes() ([]byte, error)
func (*MultiSignatureTransaction) GetMinimumFee ¶
func (tx *MultiSignatureTransaction) GetMinimumFee() (int64, error)
func (*MultiSignatureTransaction) GetSize ¶
func (tx *MultiSignatureTransaction) GetSize() (uint32, error)
func (*MultiSignatureTransaction) GetTransactionBody ¶
func (tx *MultiSignatureTransaction) GetTransactionBody(transaction *model.Transaction)
func (*MultiSignatureTransaction) ParseBodyBytes ¶
func (tx *MultiSignatureTransaction) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
func (*MultiSignatureTransaction) SkipMempoolTransaction ¶
func (*MultiSignatureTransaction) SkipMempoolTransaction([]*model.Transaction, int64, uint32) (bool, error)
func (*MultiSignatureTransaction) UndoApplyUnconfirmed ¶
func (tx *MultiSignatureTransaction) UndoApplyUnconfirmed() error
func (*MultiSignatureTransaction) Validate ¶
func (tx *MultiSignatureTransaction) Validate(dbTx bool) error
Validate dbTx specify whether validation should read from transaction state or db state
type MultisigTransactionUtil ¶
type MultisigTransactionUtil struct{}
func NewMultisigTransactionUtil ¶
func NewMultisigTransactionUtil() *MultisigTransactionUtil
func (*MultisigTransactionUtil) CheckMultisigComplete ¶
func (mtu *MultisigTransactionUtil) CheckMultisigComplete( transactionUtil UtilInterface, multisignatureInfoHelper MultisignatureInfoHelperInterface, signatureInfoHelper SignatureInfoHelperInterface, pendingTransactionHelper PendingTransactionHelperInterface, body *model.MultiSignatureTransactionBody, txHeight uint32, ) ([]*model.MultiSignatureTransactionBody, error)
func (*MultisigTransactionUtil) ValidateMultisignatureInfo ¶
func (*MultisigTransactionUtil) ValidateMultisignatureInfo(multisigInfo *model.MultiSignatureInfo) error
func (*MultisigTransactionUtil) ValidatePendingTransactionBytes ¶
func (mtu *MultisigTransactionUtil) ValidatePendingTransactionBytes( transactionUtil UtilInterface, typeSwitcher TypeActionSwitcher, multisigInfoHelper MultisignatureInfoHelperInterface, pendingTransactionHelper PendingTransactionHelperInterface, multisigInfo *model.MultiSignatureInfo, senderAddress, unsignedTxBytes []byte, blockHeight uint32, dbTx bool, ) error
func (*MultisigTransactionUtil) ValidateSignatureInfo ¶
func (mtu *MultisigTransactionUtil) ValidateSignatureInfo( signature crypto.SignatureInterface, signatureInfo *model.SignatureInfo, multiSignatureInfoAddresses map[string]bool, ) error
type MultisigTransactionUtilInterface ¶
type MultisigTransactionUtilInterface interface { CheckMultisigComplete( transactionUtil UtilInterface, multisignatureInfoHelper MultisignatureInfoHelperInterface, signatureInfoHelper SignatureInfoHelperInterface, pendingTransactionHelper PendingTransactionHelperInterface, tx *model.MultiSignatureTransactionBody, txHeight uint32, ) ([]*model.MultiSignatureTransactionBody, error) ValidatePendingTransactionBytes( transactionUtil UtilInterface, typeSwitcher TypeActionSwitcher, multisigInfoHelper MultisignatureInfoHelperInterface, pendingTransactionHelper PendingTransactionHelperInterface, multisigInfo *model.MultiSignatureInfo, senderAddress, unsignedTxBytes []byte, blockHeight uint32, dbTx bool, ) error ValidateMultisignatureInfo(info *model.MultiSignatureInfo) error ValidateSignatureInfo( signature crypto.SignatureInterface, signatureInfo *model.SignatureInfo, multisignatureAddresses map[string]bool, ) error }
type MultisignatureInfoHelper ¶
type MultisignatureInfoHelper struct { MultisignatureInfoQuery query.MultisignatureInfoQueryInterface MultiSignatureParticipantQuery query.MultiSignatureParticipantQueryInterface QueryExecutor query.ExecutorInterface }
func (*MultisignatureInfoHelper) GetMultisigInfoByAddress ¶
func (msi *MultisignatureInfoHelper) GetMultisigInfoByAddress( multisigInfo *model.MultiSignatureInfo, multisigAddress []byte, blockHeight uint32, ) error
func (*MultisignatureInfoHelper) InsertMultisignatureInfo ¶
func (msi *MultisignatureInfoHelper) InsertMultisignatureInfo(multisigInfo *model.MultiSignatureInfo) error
type MultisignatureInfoHelperInterface ¶
type MultisignatureInfoHelperInterface interface { GetMultisigInfoByAddress( multisigInfo *model.MultiSignatureInfo, multisigAddress []byte, blockHeight uint32, ) error InsertMultisignatureInfo( multisigInfo *model.MultiSignatureInfo, ) error }
type NodeRegistration ¶
type NodeRegistration struct { TransactionObject *model.Transaction Body *model.NodeRegistrationTransactionBody NodeRegistrationQuery query.NodeRegistrationQueryInterface BlockQuery query.BlockQueryInterface ParticipationScoreQuery query.ParticipationScoreQueryInterface QueryExecutor query.ExecutorInterface AuthPoown auth.NodeAuthValidationInterface EscrowQuery query.EscrowTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface FeeScaleService fee.FeeScaleServiceInterface PendingNodeRegistryCache storage.TransactionalCache }
NodeRegistration Implement service layer for (new) node registration's transaction
func (*NodeRegistration) ApplyConfirmed ¶
func (tx *NodeRegistration) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed method for confirmed the transaction and store into database
func (*NodeRegistration) ApplyUnconfirmed ¶
func (tx *NodeRegistration) ApplyUnconfirmed() error
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `NodeRegistration` type:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*NodeRegistration) EscrowApplyConfirmed ¶
func (tx *NodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
EscrowApplyConfirmed func that for applying Transaction SendZBC type
func (*NodeRegistration) EscrowApplyUnconfirmed ¶
func (tx *NodeRegistration) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is applyUnconfirmed specific for Escrow's transaction similar with ApplyUnconfirmed and Escrow.Commission
func (*NodeRegistration) EscrowApproval ¶
func (tx *NodeRegistration) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*NodeRegistration) EscrowUndoApplyUnconfirmed ¶
func (tx *NodeRegistration) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*NodeRegistration) EscrowValidate ¶
func (tx *NodeRegistration) EscrowValidate(dbTx bool) error
EscrowValidate special validation for escrow's transaction
func (*NodeRegistration) Escrowable ¶
func (tx *NodeRegistration) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*NodeRegistration) GetAmount ¶
func (tx *NodeRegistration) GetAmount() int64
func (*NodeRegistration) GetBodyBytes ¶
func (tx *NodeRegistration) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*NodeRegistration) GetMinimumFee ¶
func (tx *NodeRegistration) GetMinimumFee() (int64, error)
func (*NodeRegistration) GetSize ¶
func (tx *NodeRegistration) GetSize() (uint32, error)
func (*NodeRegistration) GetTransactionBody ¶
func (tx *NodeRegistration) GetTransactionBody(transaction *model.Transaction)
func (*NodeRegistration) ParseBodyBytes ¶
func (tx *NodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*NodeRegistration) SkipMempoolTransaction ¶
func (tx *NodeRegistration) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out of the mempool a node registration tx if there are other node registration tx in mempool to make sure only one node registration tx at the time (the one with highest fee paid) makes it to the same block
func (*NodeRegistration) UndoApplyUnconfirmed ¶
func (tx *NodeRegistration) UndoApplyUnconfirmed() error
func (*NodeRegistration) Validate ¶
func (tx *NodeRegistration) Validate(dbTx bool) error
Validate validate node registration transaction and tx body
type PendingTransactionHelper ¶
type PendingTransactionHelper struct { MultisignatureInfoQuery query.MultisignatureInfoQueryInterface PendingTransactionQuery query.PendingTransactionQueryInterface TransactionUtil UtilInterface TypeSwitcher TypeActionSwitcher QueryExecutor query.ExecutorInterface }
func (*PendingTransactionHelper) ApplyConfirmedPendingTransaction ¶
func (pth *PendingTransactionHelper) ApplyConfirmedPendingTransaction( pendingTransactionBytes []byte, txHeight uint32, blockTimestamp int64, ) (*model.Transaction, error)
func (*PendingTransactionHelper) ApplyUnconfirmedPendingTransaction ¶
func (pth *PendingTransactionHelper) ApplyUnconfirmedPendingTransaction( pendingTransactionBytes []byte, ) error
func (*PendingTransactionHelper) GetPendingTransactionByHash ¶
func (pth *PendingTransactionHelper) GetPendingTransactionByHash( pendingTx *model.PendingTransaction, pendingTransactionHash []byte, pendingTransactionStatuses []model.PendingTransactionStatus, blockHeight uint32, dbTx bool, ) error
func (*PendingTransactionHelper) GetPendingTransactionBySenderAddress ¶
func (pth *PendingTransactionHelper) GetPendingTransactionBySenderAddress( senderAddress []byte, txHeight uint32, ) ([]*model.PendingTransaction, error)
func (*PendingTransactionHelper) InsertPendingTransaction ¶
func (pth *PendingTransactionHelper) InsertPendingTransaction( pendingTransaction *model.PendingTransaction, ) error
func (*PendingTransactionHelper) UndoApplyUnconfirmedPendingTransaction ¶
func (pth *PendingTransactionHelper) UndoApplyUnconfirmedPendingTransaction(pendingTransactionBytes []byte) error
type PendingTransactionHelperInterface ¶
type PendingTransactionHelperInterface interface { InsertPendingTransaction( pendingTransaction *model.PendingTransaction, ) error GetPendingTransactionByHash( pendingTransaction *model.PendingTransaction, pendingTransactionHash []byte, pendingTransactionStatuses []model.PendingTransactionStatus, blockHeight uint32, dbTx bool, ) error GetPendingTransactionBySenderAddress( senderAddress []byte, txHeight uint32, ) ([]*model.PendingTransaction, error) ApplyUnconfirmedPendingTransaction(pendingTransactionBytes []byte) error UndoApplyUnconfirmedPendingTransaction(pendingTransactionBytes []byte) error ApplyConfirmedPendingTransaction( pendingTransaction []byte, txHeight uint32, blockTimestamp int64, ) (*model.Transaction, error) }
type RemoveAccountDataset ¶
type RemoveAccountDataset struct { TransactionObject *model.Transaction Body *model.RemoveAccountDatasetTransactionBody AccountDatasetQuery query.AccountDatasetQueryInterface QueryExecutor query.ExecutorInterface EscrowQuery query.EscrowTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface FeeScaleService fee.FeeScaleServiceInterface }
RemoveAccountDataset has fields that's needed
func (*RemoveAccountDataset) ApplyConfirmed ¶
func (tx *RemoveAccountDataset) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed is func that for applying Transaction RemoveAccountDataset type,
func (*RemoveAccountDataset) ApplyUnconfirmed ¶
func (tx *RemoveAccountDataset) ApplyUnconfirmed() error
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `RemoveAccountDataset` type
func (*RemoveAccountDataset) EscrowApplyConfirmed ¶
func (tx *RemoveAccountDataset) EscrowApplyConfirmed(blockTimestamp int64) error
EscrowApplyConfirmed is func that for applying Transaction RemoveAccountDataset type,
func (*RemoveAccountDataset) EscrowApplyUnconfirmed ¶
func (tx *RemoveAccountDataset) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is func that for applying to unconfirmed Transaction `RemoveAccountDataset` type
func (*RemoveAccountDataset) EscrowApproval ¶
func (tx *RemoveAccountDataset) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*RemoveAccountDataset) EscrowUndoApplyUnconfirmed ¶
func (tx *RemoveAccountDataset) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*RemoveAccountDataset) EscrowValidate ¶
func (tx *RemoveAccountDataset) EscrowValidate(dbTx bool) error
EscrowValidate is func that for validating to Transaction RemoveAccountDataset type That specs:
- Check existing Account Dataset
- Check Spendable Balance sender
func (*RemoveAccountDataset) Escrowable ¶
func (tx *RemoveAccountDataset) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*RemoveAccountDataset) GetAmount ¶
func (tx *RemoveAccountDataset) GetAmount() int64
GetAmount return Amount from TransactionBody
func (*RemoveAccountDataset) GetBodyBytes ¶
func (tx *RemoveAccountDataset) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*RemoveAccountDataset) GetMinimumFee ¶
func (tx *RemoveAccountDataset) GetMinimumFee() (int64, error)
GetMinimumFee return minimum fee of transaction TODO: need to calculate the minimum fee
func (*RemoveAccountDataset) GetSize ¶
func (tx *RemoveAccountDataset) GetSize() (uint32, error)
GetSize is size of transaction body
func (*RemoveAccountDataset) GetTransactionBody ¶
func (tx *RemoveAccountDataset) GetTransactionBody(transaction *model.Transaction)
GetTransactionBody return transaction body of RemoveAccountDataset transactions
func (*RemoveAccountDataset) ParseBodyBytes ¶
func (tx *RemoveAccountDataset) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*RemoveAccountDataset) SkipMempoolTransaction ¶
func (tx *RemoveAccountDataset) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction this tx type has no mempool filter
func (*RemoveAccountDataset) UndoApplyUnconfirmed ¶
func (tx *RemoveAccountDataset) UndoApplyUnconfirmed() error
UndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*RemoveAccountDataset) Validate ¶
func (tx *RemoveAccountDataset) Validate(dbTx bool) error
Validate is func that for validating to Transaction RemoveAccountDataset type That specs:
- Check existing Account Dataset
- Check Spendable Balance sender
type RemoveNodeRegistration ¶
type RemoveNodeRegistration struct { TransactionObject *model.Transaction Body *model.RemoveNodeRegistrationTransactionBody NodeRegistrationQuery query.NodeRegistrationQueryInterface NodeAddressInfoQuery query.NodeAddressInfoQueryInterface QueryExecutor query.ExecutorInterface AccountBalanceHelper AccountBalanceHelperInterface EscrowQuery query.EscrowTransactionQueryInterface FeeScaleService fee.FeeScaleServiceInterface NodeAddressInfoStorage storage.TransactionalCache PendingNodeRegistryCache storage.TransactionalCache ActiveNodeRegistryCache storage.TransactionalCache }
RemoveNodeRegistration Implement service layer for (new) node registration's transaction
func (*RemoveNodeRegistration) ApplyConfirmed ¶
func (tx *RemoveNodeRegistration) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed method for confirmed the transaction and store into database
func (*RemoveNodeRegistration) ApplyUnconfirmed ¶
func (tx *RemoveNodeRegistration) ApplyUnconfirmed() error
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `RemoveNodeRegistration` type:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*RemoveNodeRegistration) EscrowApplyConfirmed ¶
func (tx *RemoveNodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
EscrowApplyConfirmed method for confirmed the transaction and store into database
func (*RemoveNodeRegistration) EscrowApplyUnconfirmed ¶
func (tx *RemoveNodeRegistration) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is func that for applying to unconfirmed Transaction `RemoveNodeRegistration` type. Perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*RemoveNodeRegistration) EscrowApproval ¶
func (tx *RemoveNodeRegistration) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*RemoveNodeRegistration) EscrowUndoApplyUnconfirmed ¶
func (tx *RemoveNodeRegistration) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed func that perform on apply confirm preparation
func (*RemoveNodeRegistration) EscrowValidate ¶
func (tx *RemoveNodeRegistration) EscrowValidate(dbTx bool) error
EscrowValidate validate node registration transaction and tx body
func (*RemoveNodeRegistration) Escrowable ¶
func (tx *RemoveNodeRegistration) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*RemoveNodeRegistration) GetAmount ¶
func (tx *RemoveNodeRegistration) GetAmount() int64
func (*RemoveNodeRegistration) GetBodyBytes ¶
func (tx *RemoveNodeRegistration) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*RemoveNodeRegistration) GetMinimumFee ¶
func (tx *RemoveNodeRegistration) GetMinimumFee() (int64, error)
func (*RemoveNodeRegistration) GetSize ¶
func (tx *RemoveNodeRegistration) GetSize() (uint32, error)
func (*RemoveNodeRegistration) GetTransactionBody ¶
func (tx *RemoveNodeRegistration) GetTransactionBody(transaction *model.Transaction)
func (*RemoveNodeRegistration) ParseBodyBytes ¶
func (tx *RemoveNodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*RemoveNodeRegistration) SkipMempoolTransaction ¶
func (tx *RemoveNodeRegistration) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out of the mempool a node registration tx if there are other node registration tx in mempool to make sure only one node registration tx at the time (the one with highest fee paid) makes it to the same block
func (*RemoveNodeRegistration) UndoApplyUnconfirmed ¶
func (tx *RemoveNodeRegistration) UndoApplyUnconfirmed() error
func (*RemoveNodeRegistration) Validate ¶
func (tx *RemoveNodeRegistration) Validate(dbTx bool) error
Validate validate node registration transaction and tx body
type SendZBC ¶
type SendZBC struct { TransactionObject *model.Transaction Body *model.SendZBCTransactionBody QueryExecutor query.ExecutorInterface EscrowQuery query.EscrowTransactionQueryInterface BlockQuery query.BlockQueryInterface FeeScaleService fee.FeeScaleServiceInterface AccountBalanceHelper AccountBalanceHelperInterface }
SendZBC is Transaction Type that implemented TypeAction
func (*SendZBC) ApplyConfirmed ¶
ApplyConfirmed func that for applying Transaction SendZBC type. If Genesis:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
If Not Genesis:
- perhaps sender and recipient is exists, so update `account_balance`, `recipient.balance` = current + amount and `sender.balance` = current - amount
func (*SendZBC) ApplyUnconfirmed ¶
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `SendZBC` type:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*SendZBC) EscrowApplyConfirmed ¶
EscrowApplyConfirmed func that for applying Transaction SendZBC type, insert and update balance, account ledger, and escrow
func (*SendZBC) EscrowApplyUnconfirmed ¶
EscrowApplyUnconfirmed is applyUnconfirmed specific for Escrow's transaction similar with ApplyUnconfirmed and Escrow.Commission
func (*SendZBC) EscrowApproval ¶
func (tx *SendZBC) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*SendZBC) EscrowUndoApplyUnconfirmed ¶
EscrowUndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*SendZBC) EscrowValidate ¶
EscrowValidate special validation for escrow's transaction
func (*SendZBC) Escrowable ¶
func (tx *SendZBC) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*SendZBC) GetBodyBytes ¶
GetBodyBytes translate tx body to bytes representation
func (*SendZBC) GetMinimumFee ¶
func (*SendZBC) GetTransactionBody ¶
func (tx *SendZBC) GetTransactionBody(transaction *model.Transaction)
GetTransactionBody append isTransaction_TransactionBody oneOf
func (*SendZBC) ParseBodyBytes ¶
func (tx *SendZBC) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*SendZBC) SkipMempoolTransaction ¶
SkipMempoolTransaction this tx type has no mempool filter
func (*SendZBC) UndoApplyUnconfirmed ¶
UndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
type SetupAccountDataset ¶
type SetupAccountDataset struct { TransactionObject *model.Transaction Body *model.SetupAccountDatasetTransactionBody AccountDatasetQuery query.AccountDatasetQueryInterface QueryExecutor query.ExecutorInterface EscrowQuery query.EscrowTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface TransactionQuery query.TransactionQueryInterface FeeScaleService fee.FeeScaleServiceInterface }
SetupAccountDataset fields that's needed
func (*SetupAccountDataset) ApplyConfirmed ¶
func (tx *SetupAccountDataset) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed is func that for applying Transaction SetupAccountDataset type, And Perhaps EscrowApplyConfirmed called with QueryExecutor.BeginTX() because inside this process has separated QueryExecutor.Execute
func (*SetupAccountDataset) ApplyUnconfirmed ¶
func (tx *SetupAccountDataset) ApplyUnconfirmed() error
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `SetupAccountDataset` type
func (*SetupAccountDataset) EscrowApplyConfirmed ¶
func (tx *SetupAccountDataset) EscrowApplyConfirmed(blockTimestamp int64) error
EscrowApplyConfirmed is func that for applying Transaction SetupAccountDataset type. And Perhaps EscrowApplyConfirmed called with QueryExecutor.BeginTX() because inside this process has separated QueryExecutor.Execute
func (*SetupAccountDataset) EscrowApplyUnconfirmed ¶
func (tx *SetupAccountDataset) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is func that for applying to unconfirmed Transaction `SetupAccountDataset` type.
func (*SetupAccountDataset) EscrowApproval ¶
func (tx *SetupAccountDataset) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending.
func (*SetupAccountDataset) EscrowUndoApplyUnconfirmed ¶
func (tx *SetupAccountDataset) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*SetupAccountDataset) EscrowValidate ¶
func (tx *SetupAccountDataset) EscrowValidate(dbTx bool) error
EscrowValidate is func that for validating to Transaction SetupAccountDataset type.
func (*SetupAccountDataset) Escrowable ¶
func (tx *SetupAccountDataset) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*SetupAccountDataset) GetAmount ¶
func (tx *SetupAccountDataset) GetAmount() int64
GetAmount return Amount from TransactionBody
func (*SetupAccountDataset) GetBodyBytes ¶
func (tx *SetupAccountDataset) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*SetupAccountDataset) GetMinimumFee ¶
func (tx *SetupAccountDataset) GetMinimumFee() (int64, error)
GetMinimumFee return minimum fee of transaction
func (*SetupAccountDataset) GetSize ¶
func (tx *SetupAccountDataset) GetSize() (uint32, error)
GetSize is size of transaction body
func (*SetupAccountDataset) GetTransactionBody ¶
func (tx *SetupAccountDataset) GetTransactionBody(transaction *model.Transaction)
GetTransactionBody return transaction body of SetupAccountDataset transactions
func (*SetupAccountDataset) ParseBodyBytes ¶
func (tx *SetupAccountDataset) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*SetupAccountDataset) SkipMempoolTransaction ¶
func (tx *SetupAccountDataset) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction this tx type has no mempool filter
func (*SetupAccountDataset) UndoApplyUnconfirmed ¶
func (tx *SetupAccountDataset) UndoApplyUnconfirmed() error
UndoApplyUnconfirmed is used to undo the previous applied unconfirmed tx action this will be called on apply confirmed or when rollback occurred
func (*SetupAccountDataset) Validate ¶
func (tx *SetupAccountDataset) Validate(dbTx bool) error
Validate is func that for validating to Transaction SetupAccountDataset type That specs:
- Checking the expiration time
- Checking Spendable Balance sender
type SignatureInfoHelper ¶
type SignatureInfoHelper struct { PendingSignatureQuery query.PendingSignatureQueryInterface PendingTransactionQuery query.PendingTransactionQueryInterface QueryExecutor query.ExecutorInterface Signature crypto.SignatureInterface }
func (*SignatureInfoHelper) GetPendingSignatureByTransactionHash ¶
func (sih *SignatureInfoHelper) GetPendingSignatureByTransactionHash(transactionHash []byte, txHeight uint32) ([]*model.PendingSignature, error)
func (*SignatureInfoHelper) InsertPendingSignature ¶
func (sih *SignatureInfoHelper) InsertPendingSignature( pendingSignature *model.PendingSignature, ) error
type SignatureInfoHelperInterface ¶
type SignatureInfoHelperInterface interface { InsertPendingSignature( pendingSignature *model.PendingSignature, ) error GetPendingSignatureByTransactionHash( transactionHash []byte, txHeight uint32, ) ([]*model.PendingSignature, error) }
SignatureInfoHelperInterface multisignature helpers
type TXEmpty ¶
type TXEmpty struct {
Body *model.EmptyTransactionBody
}
func (*TXEmpty) ApplyConfirmed ¶
func (*TXEmpty) ApplyUnconfirmed ¶
func (*TXEmpty) Escrowable ¶
func (tx *TXEmpty) Escrowable() (EscrowTypeAction, bool)
func (*TXEmpty) GetBodyBytes ¶
GetBodyBytes translate tx body to bytes representation
func (*TXEmpty) GetMinimumFee ¶
func (*TXEmpty) GetTransactionBody ¶
func (*TXEmpty) GetTransactionBody(*model.Transaction)
func (*TXEmpty) ParseBodyBytes ¶
func (*TXEmpty) ParseBodyBytes([]byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*TXEmpty) SkipMempoolTransaction ¶
func (tx *TXEmpty) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction this tx type has no mempool filter
func (*TXEmpty) UndoApplyUnconfirmed ¶
type TransactionHelper ¶
type TransactionHelper struct { TransactionQuery query.TransactionQueryInterface QueryExecutor query.ExecutorInterface }
func NewTransactionHelper ¶
func NewTransactionHelper( transactionQuery query.TransactionQueryInterface, queryExecutor query.ExecutorInterface, ) *TransactionHelper
func (*TransactionHelper) InsertTransaction ¶
func (th *TransactionHelper) InsertTransaction(transaction *model.Transaction) error
type TransactionHelperInterface ¶
type TransactionHelperInterface interface {
InsertTransaction(transaction *model.Transaction) error
}
type TypeAction ¶
type TypeAction interface { // ApplyConfirmed perhaps this method called with QueryExecutor.BeginTX() because inside this process has separated QueryExecutor.Execute ApplyConfirmed(blockTimestamp int64) error ApplyUnconfirmed() error UndoApplyUnconfirmed() error // Validate dbTx specify whether validation should read from transaction state or db state Validate(dbTx bool) error GetMinimumFee() (int64, error) GetAmount() int64 GetSize() (uint32, error) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error) GetBodyBytes() ([]byte, error) GetTransactionBody(transaction *model.Transaction) SkipMempoolTransaction( selectedTransactions []*model.Transaction, blockTimestamp int64, blockHeight uint32, ) (bool, error) // Escrowable check if transaction type has escrow part and it will refill escrow part Escrowable() (EscrowTypeAction, bool) }
TypeAction is transaction methods collection
type TypeActionSwitcher ¶
type TypeActionSwitcher interface {
GetTransactionType(tx *model.Transaction) (TypeAction, error)
}
TypeActionSwitcher assert transaction to TypeAction / EscrowTypeAction
type TypeSwitcher ¶
type TypeSwitcher struct { Executor query.ExecutorInterface NodeAuthValidation auth.NodeAuthValidationInterface MempoolCacheStorage storage.CacheStorageInterface NodeAddressInfoStorage storage.TransactionalCache PendingNodeRegistryStorage storage.TransactionalCache ActiveNodeRegistryStorage storage.TransactionalCache FeeScaleService fee.FeeScaleServiceInterface }
TypeSwitcher is TypeActionSwitcher shell
func (*TypeSwitcher) GetTransactionType ¶
func (ts *TypeSwitcher) GetTransactionType(tx *model.Transaction) (TypeAction, error)
GetTransactionType assert transaction to TypeAction
type UpdateNodeRegistration ¶
type UpdateNodeRegistration struct { TransactionObject *model.Transaction Body *model.UpdateNodeRegistrationTransactionBody NodeRegistrationQuery query.NodeRegistrationQueryInterface BlockQuery query.BlockQueryInterface QueryExecutor query.ExecutorInterface AuthPoown auth.NodeAuthValidationInterface EscrowQuery query.EscrowTransactionQueryInterface AccountBalanceHelper AccountBalanceHelperInterface FeeScaleService fee.FeeScaleServiceInterface PendingNodeRegistrationCache storage.TransactionalCache ActiveNodeRegistrationCache storage.TransactionalCache }
UpdateNodeRegistration Implement service layer for (new) node registration's transaction
func (*UpdateNodeRegistration) ApplyConfirmed ¶
func (tx *UpdateNodeRegistration) ApplyConfirmed(blockTimestamp int64) error
ApplyConfirmed method for confirmed the transaction and store into database
func (*UpdateNodeRegistration) ApplyUnconfirmed ¶
func (tx *UpdateNodeRegistration) ApplyUnconfirmed() error
ApplyUnconfirmed is func that for applying to unconfirmed Transaction `UpdateNodeRegistration` type:
- perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*UpdateNodeRegistration) EscrowApplyConfirmed ¶
func (tx *UpdateNodeRegistration) EscrowApplyConfirmed(blockTimestamp int64) error
EscrowApplyConfirmed method for confirmed the transaction and store into database
func (*UpdateNodeRegistration) EscrowApplyUnconfirmed ¶
func (tx *UpdateNodeRegistration) EscrowApplyUnconfirmed() error
EscrowApplyUnconfirmed is func that for applying to unconfirmed Transaction `UpdateNodeRegistration` type, perhaps recipient is not exists , so create new `account` and `account_balance`, balance and spendable = amount.
func (*UpdateNodeRegistration) EscrowApproval ¶
func (tx *UpdateNodeRegistration) EscrowApproval( blockTimestamp int64, txBody *model.ApprovalEscrowTransactionBody, ) error
EscrowApproval handle approval an escrow transaction, execute tasks that was skipped when escrow pending. like: spreading commission and fee, and also more pending tasks
func (*UpdateNodeRegistration) EscrowUndoApplyUnconfirmed ¶
func (tx *UpdateNodeRegistration) EscrowUndoApplyUnconfirmed() error
EscrowUndoApplyUnconfirmed func that perform on apply confirm preparation
func (*UpdateNodeRegistration) EscrowValidate ¶
func (tx *UpdateNodeRegistration) EscrowValidate(dbTx bool) error
EscrowValidate validate node registration transaction and tx body
func (*UpdateNodeRegistration) Escrowable ¶
func (tx *UpdateNodeRegistration) Escrowable() (EscrowTypeAction, bool)
Escrowable will check the transaction is escrow or not. Rebuild escrow if not nil, and can use for whole sibling methods (escrow)
func (*UpdateNodeRegistration) GetAmount ¶
func (tx *UpdateNodeRegistration) GetAmount() int64
func (*UpdateNodeRegistration) GetBodyBytes ¶
func (tx *UpdateNodeRegistration) GetBodyBytes() ([]byte, error)
GetBodyBytes translate tx body to bytes representation
func (*UpdateNodeRegistration) GetMinimumFee ¶
func (tx *UpdateNodeRegistration) GetMinimumFee() (int64, error)
func (*UpdateNodeRegistration) GetSize ¶
func (tx *UpdateNodeRegistration) GetSize() (uint32, error)
func (*UpdateNodeRegistration) GetTransactionBody ¶
func (tx *UpdateNodeRegistration) GetTransactionBody(transaction *model.Transaction)
func (*UpdateNodeRegistration) ParseBodyBytes ¶
func (tx *UpdateNodeRegistration) ParseBodyBytes(txBodyBytes []byte) (model.TransactionBodyInterface, error)
ParseBodyBytes read and translate body bytes to body implementation fields
func (*UpdateNodeRegistration) SkipMempoolTransaction ¶
func (tx *UpdateNodeRegistration) SkipMempoolTransaction( selectedTransactions []*model.Transaction, newBlockTimestamp int64, newBlockHeight uint32, ) (bool, error)
SkipMempoolTransaction filter out of the mempool a node registration tx if there are other node registration tx in mempool to make sure only one node registration tx at the time (the one with highest fee paid) makes it to the same block
func (*UpdateNodeRegistration) UndoApplyUnconfirmed ¶
func (tx *UpdateNodeRegistration) UndoApplyUnconfirmed() error
func (*UpdateNodeRegistration) Validate ¶
func (tx *UpdateNodeRegistration) Validate(dbTx bool) error
Validate validate node registration transaction and tx body
type Util ¶
type Util struct { FeeScaleService fee.FeeScaleServiceInterface MempoolCacheStorage storage.CacheStorageInterface QueryExecutor query.ExecutorInterface AccountDatasetQuery query.AccountDatasetQueryInterface }
func (*Util) GenerateMultiSigAddress ¶
func (u *Util) GenerateMultiSigAddress(info *model.MultiSignatureInfo) ([]byte, error)
GenerateMultiSigAddress assembling MultiSignatureInfo to be an account address that is multi signature account address
func (*Util) GetTransactionBytes ¶
GetTransactionBytes translate transaction model to its byte representation provide sign = true to translate transaction with its signature, sign = false for without signature (used for verify signature)
func (*Util) GetTransactionID ¶
GetTransactionID calculate and returns a transaction ID given a transaction model
func (*Util) ParseTransactionBytes ¶
func (u *Util) ParseTransactionBytes(transactionBytes []byte, sign bool) (*model.Transaction, error)
ParseTransactionBytes build transaction from transaction bytes
func (*Util) ValidateTransaction ¶
func (u *Util) ValidateTransaction(tx *model.Transaction, typeAction TypeAction, verifySignature bool) error
ValidateTransaction take in transaction object and execute basic validation
type UtilInterface ¶
type UtilInterface interface { GetTransactionBytes(transaction *model.Transaction, sign bool) ([]byte, error) ParseTransactionBytes(transactionBytes []byte, sign bool) (*model.Transaction, error) GetTransactionID(transactionHash []byte) (int64, error) ValidateTransaction(tx *model.Transaction, typeAction TypeAction, verifySignature bool) error GenerateMultiSigAddress(info *model.MultiSignatureInfo) ([]byte, error) }
Source Files
¶
- accountBalanceHelper.go
- approvalEscrowTransaction.go
- doc.go
- empty.go
- feeVoteCommit.go
- feeVoteReveal.go
- fixtureGenerator.go
- liquidPayment.go
- liquidPaymentStop.go
- multiSignature.go
- nodeRegistration.go
- nodeRegistrationClaim.go
- nodeRegistrationUpdate.go
- removeAccountDataset.go
- removeNodeRegistration.go
- sendZBC.go
- setupAccountDataset.go
- transaction.go
- transactionGeneral.go
- transactionHelper.go