mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
first tests
This commit is contained in:
commit
16bd126133
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +1,6 @@
|
|||||||
[submodule "mithril_client"]
|
[submodule "mithril_client"]
|
||||||
path = mithril_client
|
path = mithril_client
|
||||||
url = ssh://git@***REMOVED***/~/_mithril/gradido_mithrilJS_client
|
url = ssh://git@***REMOVED***/~/_mithril/gradido_mithrilJS_client
|
||||||
|
[submodule "src/protobuf"]
|
||||||
|
path = src/protobuf
|
||||||
|
url = ssh://git@***REMOVED***/~/_protobuf/gradido_protobuf
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
"cakephp/cakephp-codesniffer": "^3.0",
|
"cakephp/cakephp-codesniffer": "^3.0",
|
||||||
"cakephp/debug_kit": "^3.17.0",
|
"cakephp/debug_kit": "^3.17.0",
|
||||||
"josegonzalez/dotenv": "3.*",
|
"josegonzalez/dotenv": "3.*",
|
||||||
"phpunit/phpunit": "^5|^6",
|
"phpunit/phpunit": "^5.7|^6.0",
|
||||||
"psy/psysh": "@stable"
|
"psy/psysh": "@stable"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
|
|||||||
2
composer.lock
generated
2
composer.lock
generated
@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "2944d37824c58c80f9759fff3074fa2d",
|
"content-hash": "de9b091bfb2ef9e30a63a154a97b5d9f",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "aura/intl",
|
"name": "aura/intl",
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 680e56876d6e7f2778bff4eb49c880063716b391
|
Subproject commit f0b1d113cee2a76e9dbb098b315f4acaf38410d0
|
||||||
@ -13,6 +13,7 @@ use App\Form\CreationForm;
|
|||||||
use Model\Messages\Gradido\TransactionCreation;
|
use Model\Messages\Gradido\TransactionCreation;
|
||||||
use Model\Messages\Gradido\TransactionBody;
|
use Model\Messages\Gradido\TransactionBody;
|
||||||
use Model\Messages\Gradido\ReceiverAmount;
|
use Model\Messages\Gradido\ReceiverAmount;
|
||||||
|
use Model\Messages\Gradido\TimestampSeconds;
|
||||||
/**
|
/**
|
||||||
* TransactionCreations Controller
|
* TransactionCreations Controller
|
||||||
*
|
*
|
||||||
@ -120,9 +121,14 @@ class TransactionCreationsController extends AppController
|
|||||||
if($pubKeyHex != '') {
|
if($pubKeyHex != '') {
|
||||||
$receiver->setEd25519ReceiverPubkey(hex2bin($pubKeyHex));
|
$receiver->setEd25519ReceiverPubkey(hex2bin($pubKeyHex));
|
||||||
//var_dump($requestData);
|
//var_dump($requestData);
|
||||||
|
|
||||||
|
$creationDate = new TimestampSeconds();
|
||||||
|
$creationDate->setSeconds(time());
|
||||||
|
|
||||||
$transactionBody = new TransactionBody();
|
$transactionBody = new TransactionBody();
|
||||||
$transactionBody->setMemo($requestData['memo']);
|
$transactionBody->setMemo($requestData['memo']);
|
||||||
|
$transactionBody->setCreated($creationDate);
|
||||||
|
|
||||||
$transaction = new TransactionCreation();
|
$transaction = new TransactionCreation();
|
||||||
$transaction->setReceiverAmount($receiver);
|
$transaction->setReceiverAmount($receiver);
|
||||||
$transaction->setIdentHash($user['ident_hash']);
|
$transaction->setIdentHash($user['ident_hash']);
|
||||||
|
|||||||
@ -22,9 +22,9 @@ class Key extends \Google\Protobuf\Internal\Message
|
|||||||
* Optional. Data for populating the Message object.
|
* Optional. Data for populating the Message object.
|
||||||
*
|
*
|
||||||
* @type string $ed25519
|
* @type string $ed25519
|
||||||
* ed25519 signature (libsodium default)
|
* ed25519 signature (libsodium default)
|
||||||
* @type string $ed25519_ref10
|
* @type string $ed25519_ref10
|
||||||
* ed25519 ref10 signature
|
* ed25519 ref10 signature
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
public function __construct($data = NULL) {
|
public function __construct($data = NULL) {
|
||||||
@ -33,7 +33,7 @@ class Key extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 signature (libsodium default)
|
* ed25519 signature (libsodium default)
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
||||||
* @return string
|
* @return string
|
||||||
@ -44,7 +44,7 @@ class Key extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 signature (libsodium default)
|
* ed25519 signature (libsodium default)
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
||||||
* @param string $var
|
* @param string $var
|
||||||
@ -59,7 +59,7 @@ class Key extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 ref10 signature
|
* ed25519 ref10 signature
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
||||||
* @return string
|
* @return string
|
||||||
@ -70,7 +70,7 @@ class Key extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 ref10 signature
|
* ed25519 ref10 signature
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
||||||
* @param string $var
|
* @param string $var
|
||||||
|
|||||||
@ -22,7 +22,7 @@ class SenderAmount extends \Google\Protobuf\Internal\Message
|
|||||||
*/
|
*/
|
||||||
private $amount = 0;
|
private $amount = 0;
|
||||||
/**
|
/**
|
||||||
* sender balance after transaction, including perishability
|
* sender balance after transaction, including perishability
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>sint64 senderFinalBalance = 3;</code>
|
* Generated from protobuf field <code>sint64 senderFinalBalance = 3;</code>
|
||||||
*/
|
*/
|
||||||
@ -37,7 +37,7 @@ class SenderAmount extends \Google\Protobuf\Internal\Message
|
|||||||
* @type string $ed25519_sender_pubkey
|
* @type string $ed25519_sender_pubkey
|
||||||
* @type int|string $amount
|
* @type int|string $amount
|
||||||
* @type int|string $senderFinalBalance
|
* @type int|string $senderFinalBalance
|
||||||
* sender balance after transaction, including perishability
|
* sender balance after transaction, including perishability
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
public function __construct($data = NULL) {
|
public function __construct($data = NULL) {
|
||||||
@ -90,7 +90,7 @@ class SenderAmount extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sender balance after transaction, including perishability
|
* sender balance after transaction, including perishability
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>sint64 senderFinalBalance = 3;</code>
|
* Generated from protobuf field <code>sint64 senderFinalBalance = 3;</code>
|
||||||
* @return int|string
|
* @return int|string
|
||||||
@ -101,7 +101,7 @@ class SenderAmount extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sender balance after transaction, including perishability
|
* sender balance after transaction, including perishability
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>sint64 senderFinalBalance = 3;</code>
|
* Generated from protobuf field <code>sint64 senderFinalBalance = 3;</code>
|
||||||
* @param int|string $var
|
* @param int|string $var
|
||||||
|
|||||||
@ -14,7 +14,7 @@ use Google\Protobuf\Internal\GPBUtil;
|
|||||||
class SignatureMap extends \Google\Protobuf\Internal\Message
|
class SignatureMap extends \Google\Protobuf\Internal\Message
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>repeated .model.messages.gradido.SignaturePair sigPair = 1;</code>
|
* Generated from protobuf field <code>repeated .model.messages.gradido.SignaturePair sigPair = 1;</code>
|
||||||
*/
|
*/
|
||||||
@ -27,7 +27,7 @@ class SignatureMap extends \Google\Protobuf\Internal\Message
|
|||||||
* Optional. Data for populating the Message object.
|
* Optional. Data for populating the Message object.
|
||||||
*
|
*
|
||||||
* @type \Model\Messages\Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $sigPair
|
* @type \Model\Messages\Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $sigPair
|
||||||
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
public function __construct($data = NULL) {
|
public function __construct($data = NULL) {
|
||||||
@ -36,7 +36,7 @@ class SignatureMap extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>repeated .model.messages.gradido.SignaturePair sigPair = 1;</code>
|
* Generated from protobuf field <code>repeated .model.messages.gradido.SignaturePair sigPair = 1;</code>
|
||||||
* @return \Google\Protobuf\Internal\RepeatedField
|
* @return \Google\Protobuf\Internal\RepeatedField
|
||||||
@ -47,7 +47,7 @@ class SignatureMap extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
* Each signature pair corresponds to a unique Key required to sign the transaction.
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>repeated .model.messages.gradido.SignaturePair sigPair = 1;</code>
|
* Generated from protobuf field <code>repeated .model.messages.gradido.SignaturePair sigPair = 1;</code>
|
||||||
* @param \Model\Messages\Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $var
|
* @param \Model\Messages\Gradido\SignaturePair[]|\Google\Protobuf\Internal\RepeatedField $var
|
||||||
|
|||||||
@ -27,9 +27,9 @@ class SignaturePair extends \Google\Protobuf\Internal\Message
|
|||||||
*
|
*
|
||||||
* @type string $pubKey
|
* @type string $pubKey
|
||||||
* @type string $ed25519
|
* @type string $ed25519
|
||||||
* ed25519 signature (libsodium default)
|
* ed25519 signature (libsodium default)
|
||||||
* @type string $ed25519_ref10
|
* @type string $ed25519_ref10
|
||||||
* ed25519 ref10 signature
|
* ed25519 ref10 signature
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
public function __construct($data = NULL) {
|
public function __construct($data = NULL) {
|
||||||
@ -60,7 +60,7 @@ class SignaturePair extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 signature (libsodium default)
|
* ed25519 signature (libsodium default)
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
||||||
* @return string
|
* @return string
|
||||||
@ -71,7 +71,7 @@ class SignaturePair extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 signature (libsodium default)
|
* ed25519 signature (libsodium default)
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
* Generated from protobuf field <code>bytes ed25519 = 2;</code>
|
||||||
* @param string $var
|
* @param string $var
|
||||||
@ -86,7 +86,7 @@ class SignaturePair extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 ref10 signature
|
* ed25519 ref10 signature
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
||||||
* @return string
|
* @return string
|
||||||
@ -97,7 +97,7 @@ class SignaturePair extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ed25519 ref10 signature
|
* ed25519 ref10 signature
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
* Generated from protobuf field <code>bytes ed25519_ref10 = 3;</code>
|
||||||
* @param string $var
|
* @param string $var
|
||||||
|
|||||||
@ -9,7 +9,7 @@ use Google\Protobuf\Internal\RepeatedField;
|
|||||||
use Google\Protobuf\Internal\GPBUtil;
|
use Google\Protobuf\Internal\GPBUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* need signature from this group and from parent (if it isn't zero)
|
* need signature from this group and from parent (if it isn't zero)
|
||||||
*
|
*
|
||||||
* Generated from protobuf message <code>model.messages.gradido.StateCreateGroup</code>
|
* Generated from protobuf message <code>model.messages.gradido.StateCreateGroup</code>
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -9,7 +9,7 @@ use Google\Protobuf\Internal\RepeatedField;
|
|||||||
use Google\Protobuf\Internal\GPBUtil;
|
use Google\Protobuf\Internal\GPBUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* need signature from this group and from both parents (if it isn't zero)
|
* need signature from this group and from both parents (if it isn't zero)
|
||||||
*
|
*
|
||||||
* Generated from protobuf message <code>model.messages.gradido.StateGroupChangeParent</code>
|
* Generated from protobuf message <code>model.messages.gradido.StateGroupChangeParent</code>
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -16,13 +16,13 @@ use Google\Protobuf\Internal\GPBUtil;
|
|||||||
class Timestamp extends \Google\Protobuf\Internal\Message
|
class Timestamp extends \Google\Protobuf\Internal\Message
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
||||||
*/
|
*/
|
||||||
private $seconds = 0;
|
private $seconds = 0;
|
||||||
/**
|
/**
|
||||||
* Number of nanoseconds since the start of the last second
|
* Number of nanoseconds since the start of the last second
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int32 nanos = 2;</code>
|
* Generated from protobuf field <code>int32 nanos = 2;</code>
|
||||||
*/
|
*/
|
||||||
@ -35,9 +35,9 @@ class Timestamp extends \Google\Protobuf\Internal\Message
|
|||||||
* Optional. Data for populating the Message object.
|
* Optional. Data for populating the Message object.
|
||||||
*
|
*
|
||||||
* @type int|string $seconds
|
* @type int|string $seconds
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
* @type int $nanos
|
* @type int $nanos
|
||||||
* Number of nanoseconds since the start of the last second
|
* Number of nanoseconds since the start of the last second
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
public function __construct($data = NULL) {
|
public function __construct($data = NULL) {
|
||||||
@ -46,7 +46,7 @@ class Timestamp extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
||||||
* @return int|string
|
* @return int|string
|
||||||
@ -57,7 +57,7 @@ class Timestamp extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
||||||
* @param int|string $var
|
* @param int|string $var
|
||||||
@ -72,7 +72,7 @@ class Timestamp extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of nanoseconds since the start of the last second
|
* Number of nanoseconds since the start of the last second
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int32 nanos = 2;</code>
|
* Generated from protobuf field <code>int32 nanos = 2;</code>
|
||||||
* @return int
|
* @return int
|
||||||
@ -83,7 +83,7 @@ class Timestamp extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of nanoseconds since the start of the last second
|
* Number of nanoseconds since the start of the last second
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int32 nanos = 2;</code>
|
* Generated from protobuf field <code>int32 nanos = 2;</code>
|
||||||
* @param int $var
|
* @param int $var
|
||||||
|
|||||||
@ -16,7 +16,7 @@ use Google\Protobuf\Internal\GPBUtil;
|
|||||||
class TimestampSeconds extends \Google\Protobuf\Internal\Message
|
class TimestampSeconds extends \Google\Protobuf\Internal\Message
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
||||||
*/
|
*/
|
||||||
@ -29,7 +29,7 @@ class TimestampSeconds extends \Google\Protobuf\Internal\Message
|
|||||||
* Optional. Data for populating the Message object.
|
* Optional. Data for populating the Message object.
|
||||||
*
|
*
|
||||||
* @type int|string $seconds
|
* @type int|string $seconds
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
public function __construct($data = NULL) {
|
public function __construct($data = NULL) {
|
||||||
@ -38,7 +38,7 @@ class TimestampSeconds extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
||||||
* @return int|string
|
* @return int|string
|
||||||
@ -49,7 +49,7 @@ class TimestampSeconds extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of complete seconds since the start of the epoch
|
* Number of complete seconds since the start of the epoch
|
||||||
*
|
*
|
||||||
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
* Generated from protobuf field <code>int64 seconds = 1;</code>
|
||||||
* @param int|string $var
|
* @param int|string $var
|
||||||
|
|||||||
@ -19,6 +19,10 @@ class TransactionBody extends \Google\Protobuf\Internal\Message
|
|||||||
* Generated from protobuf field <code>string memo = 1;</code>
|
* Generated from protobuf field <code>string memo = 1;</code>
|
||||||
*/
|
*/
|
||||||
private $memo = '';
|
private $memo = '';
|
||||||
|
/**
|
||||||
|
* Generated from protobuf field <code>.model.messages.gradido.TimestampSeconds created = 2;</code>
|
||||||
|
*/
|
||||||
|
private $created = null;
|
||||||
protected $data;
|
protected $data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,6 +33,7 @@ class TransactionBody extends \Google\Protobuf\Internal\Message
|
|||||||
*
|
*
|
||||||
* @type string $memo
|
* @type string $memo
|
||||||
* max 150 chars
|
* max 150 chars
|
||||||
|
* @type \Model\Messages\Gradido\TimestampSeconds $created
|
||||||
* @type \Model\Messages\Gradido\StateCreateGroup $createGroup
|
* @type \Model\Messages\Gradido\StateCreateGroup $createGroup
|
||||||
* @type \Model\Messages\Gradido\StateGroupChangeParent $groupChangeParent
|
* @type \Model\Messages\Gradido\StateGroupChangeParent $groupChangeParent
|
||||||
* @type \Model\Messages\Gradido\Transfer $transfer
|
* @type \Model\Messages\Gradido\Transfer $transfer
|
||||||
@ -67,89 +72,111 @@ class TransactionBody extends \Google\Protobuf\Internal\Message
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.StateCreateGroup createGroup = 2;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.TimestampSeconds created = 2;</code>
|
||||||
|
* @return \Model\Messages\Gradido\TimestampSeconds
|
||||||
|
*/
|
||||||
|
public function getCreated()
|
||||||
|
{
|
||||||
|
return $this->created;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generated from protobuf field <code>.model.messages.gradido.TimestampSeconds created = 2;</code>
|
||||||
|
* @param \Model\Messages\Gradido\TimestampSeconds $var
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setCreated($var)
|
||||||
|
{
|
||||||
|
GPBUtil::checkMessage($var, \Model\Messages\Gradido\TimestampSeconds::class);
|
||||||
|
$this->created = $var;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generated from protobuf field <code>.model.messages.gradido.StateCreateGroup createGroup = 6;</code>
|
||||||
* @return \Model\Messages\Gradido\StateCreateGroup
|
* @return \Model\Messages\Gradido\StateCreateGroup
|
||||||
*/
|
*/
|
||||||
public function getCreateGroup()
|
public function getCreateGroup()
|
||||||
{
|
{
|
||||||
return $this->readOneof(2);
|
return $this->readOneof(6);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.StateCreateGroup createGroup = 2;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.StateCreateGroup createGroup = 6;</code>
|
||||||
* @param \Model\Messages\Gradido\StateCreateGroup $var
|
* @param \Model\Messages\Gradido\StateCreateGroup $var
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setCreateGroup($var)
|
public function setCreateGroup($var)
|
||||||
{
|
{
|
||||||
GPBUtil::checkMessage($var, \Model\Messages\Gradido\StateCreateGroup::class);
|
GPBUtil::checkMessage($var, \Model\Messages\Gradido\StateCreateGroup::class);
|
||||||
$this->writeOneof(2, $var);
|
$this->writeOneof(6, $var);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.StateGroupChangeParent groupChangeParent = 3;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.StateGroupChangeParent groupChangeParent = 7;</code>
|
||||||
* @return \Model\Messages\Gradido\StateGroupChangeParent
|
* @return \Model\Messages\Gradido\StateGroupChangeParent
|
||||||
*/
|
*/
|
||||||
public function getGroupChangeParent()
|
public function getGroupChangeParent()
|
||||||
{
|
{
|
||||||
return $this->readOneof(3);
|
return $this->readOneof(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.StateGroupChangeParent groupChangeParent = 3;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.StateGroupChangeParent groupChangeParent = 7;</code>
|
||||||
* @param \Model\Messages\Gradido\StateGroupChangeParent $var
|
* @param \Model\Messages\Gradido\StateGroupChangeParent $var
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setGroupChangeParent($var)
|
public function setGroupChangeParent($var)
|
||||||
{
|
{
|
||||||
GPBUtil::checkMessage($var, \Model\Messages\Gradido\StateGroupChangeParent::class);
|
GPBUtil::checkMessage($var, \Model\Messages\Gradido\StateGroupChangeParent::class);
|
||||||
$this->writeOneof(3, $var);
|
$this->writeOneof(7, $var);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.Transfer transfer = 4;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.Transfer transfer = 8;</code>
|
||||||
* @return \Model\Messages\Gradido\Transfer
|
* @return \Model\Messages\Gradido\Transfer
|
||||||
*/
|
*/
|
||||||
public function getTransfer()
|
public function getTransfer()
|
||||||
{
|
{
|
||||||
return $this->readOneof(4);
|
return $this->readOneof(8);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.Transfer transfer = 4;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.Transfer transfer = 8;</code>
|
||||||
* @param \Model\Messages\Gradido\Transfer $var
|
* @param \Model\Messages\Gradido\Transfer $var
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setTransfer($var)
|
public function setTransfer($var)
|
||||||
{
|
{
|
||||||
GPBUtil::checkMessage($var, \Model\Messages\Gradido\Transfer::class);
|
GPBUtil::checkMessage($var, \Model\Messages\Gradido\Transfer::class);
|
||||||
$this->writeOneof(4, $var);
|
$this->writeOneof(8, $var);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.TransactionCreation creation = 5;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.TransactionCreation creation = 9;</code>
|
||||||
* @return \Model\Messages\Gradido\TransactionCreation
|
* @return \Model\Messages\Gradido\TransactionCreation
|
||||||
*/
|
*/
|
||||||
public function getCreation()
|
public function getCreation()
|
||||||
{
|
{
|
||||||
return $this->readOneof(5);
|
return $this->readOneof(9);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated from protobuf field <code>.model.messages.gradido.TransactionCreation creation = 5;</code>
|
* Generated from protobuf field <code>.model.messages.gradido.TransactionCreation creation = 9;</code>
|
||||||
* @param \Model\Messages\Gradido\TransactionCreation $var
|
* @param \Model\Messages\Gradido\TransactionCreation $var
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setCreation($var)
|
public function setCreation($var)
|
||||||
{
|
{
|
||||||
GPBUtil::checkMessage($var, \Model\Messages\Gradido\TransactionCreation::class);
|
GPBUtil::checkMessage($var, \Model\Messages\Gradido\TransactionCreation::class);
|
||||||
$this->writeOneof(5, $var);
|
$this->writeOneof(9, $var);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,8 +9,8 @@ use Google\Protobuf\Internal\RepeatedField;
|
|||||||
use Google\Protobuf\Internal\GPBUtil;
|
use Google\Protobuf\Internal\GPBUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* need signature from group admin or
|
* need signature from group admin or
|
||||||
* percent of group users another than the receiver
|
* percent of group users another than the receiver
|
||||||
*
|
*
|
||||||
* Generated from protobuf message <code>model.messages.gradido.TransactionCreation</code>
|
* Generated from protobuf message <code>model.messages.gradido.TransactionCreation</code>
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -121,4 +122,71 @@ class Transaction extends TransactionBase {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=======
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Model\Transactions;
|
||||||
|
|
||||||
|
//use Model\Messages\Gradido\Transaction;
|
||||||
|
//use Model\Messages\Gradido\TransactionBody;
|
||||||
|
|
||||||
|
class Transaction extends TransactionBase {
|
||||||
|
|
||||||
|
private $mProtoTransaction = null;
|
||||||
|
private $mProtoTransactionBody = null;
|
||||||
|
private $errors = [];
|
||||||
|
|
||||||
|
public function __construct($base64Data) {
|
||||||
|
$transactionBin = base64_decode($base64Data);
|
||||||
|
if($transactionBin == FALSE) {
|
||||||
|
//$this->addError('base64 decode failed');
|
||||||
|
$this->addError(['data' => $base64Data, 'bin' => $transactionBin, 'msg' => 'base64 decode error']);
|
||||||
|
} else {
|
||||||
|
$this->mProtoTransaction = new \Model\Messages\Gradido\Transaction();
|
||||||
|
$this->mProtoTransaction->mergeFromString($transactionBin);
|
||||||
|
|
||||||
|
$this->mProtoTransactionBody = new \Model\Messages\Gradido\TransactionBody();
|
||||||
|
$this->mProtoTransactionBody->mergeFromString($this->mProtoTransaction->getBodyBytes());
|
||||||
|
|
||||||
|
$data = $this->mProtoTransactionBody->getData();
|
||||||
|
var_dump($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function validate() {
|
||||||
|
$sigPairs = $this->mProtoTransaction->getSigMap()->getSigPair();
|
||||||
|
$bodyBytes = $this->mProtoTransaction->getBodyBytes();
|
||||||
|
|
||||||
|
// check signature(s)
|
||||||
|
foreach($sigPairs as $sigPair) {
|
||||||
|
$pubkey = $sigPair->getPubKey();
|
||||||
|
$signature = $sigPair->getEd25519();
|
||||||
|
if (!\Sodium\crypto_sign_verify_detached($signature, $bodyBytes, $pubkey)) {
|
||||||
|
$this->addError('signature for key ' . bin2hex($pubkey) . ' isn\'t valid ' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getErrors() {
|
||||||
|
return $this->errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function hasErrors() {
|
||||||
|
return count($this->errors) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function addError($message) {
|
||||||
|
array_push($this->errors, $message);
|
||||||
|
}
|
||||||
|
>>>>>>> bcb8f1761e3eb94f89e9d2c4e70ab096e528e6c6
|
||||||
}
|
}
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
<<<<<<< HEAD
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Model\Transactions;
|
namespace Model\Transactions;
|
||||||
@ -40,4 +41,12 @@ class TransactionBase {
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
=======
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Model\Transactions;
|
||||||
|
|
||||||
|
class TransactionBase {
|
||||||
|
|
||||||
|
>>>>>>> bcb8f1761e3eb94f89e9d2c4e70ab096e528e6c6
|
||||||
}
|
}
|
||||||
@ -19,6 +19,11 @@ class TransactionBody extends TransactionBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function validate($sigPairs) {
|
public function validate($sigPairs) {
|
||||||
|
// check if creation time is in the past
|
||||||
|
if($this->mProtoTransactionBody->getCreated() > time()) {
|
||||||
|
$this->addError('TransactionBody::validate', 'Transaction were created in the past!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if(!$this->mSpecificTransaction->validate($sigPairs)) {
|
if(!$this->mSpecificTransaction->validate($sigPairs)) {
|
||||||
$this->addErrors($this->mSpecificTransaction->getErrors());
|
$this->addErrors($this->mSpecificTransaction->getErrors());
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
1
src/protobuf
Submodule
1
src/protobuf
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 77e878253ac2a044eb59700386c961c812667eae
|
||||||
48
tests/Fixture/StateBalancesFixture.php
Normal file
48
tests/Fixture/StateBalancesFixture.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* StateBalancesFixture
|
||||||
|
*/
|
||||||
|
class StateBalancesFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'user_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'modified' => ['type' => 'datetime', 'length' => null, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'amount' => ['type' => 'biginteger', 'length' => 20, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'user_id' => 1,
|
||||||
|
'modified' => '2019-11-05 18:02:28',
|
||||||
|
'amount' => 1
|
||||||
|
],
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
55
tests/Fixture/StateUsersFixture.php
Normal file
55
tests/Fixture/StateUsersFixture.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* StateUsersFixture
|
||||||
|
*/
|
||||||
|
class StateUsersFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'index_id' => ['type' => 'smallinteger', 'length' => 6, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'group_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'public_key' => ['type' => 'binary', 'length' => 32, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'email' => ['type' => 'string', 'length' => 255, 'null' => true, 'default' => null, 'collate' => 'utf8_bin', 'comment' => '', 'precision' => null, 'fixed' => null],
|
||||||
|
'first_name' => ['type' => 'string', 'length' => 255, 'null' => true, 'default' => null, 'collate' => 'utf8_bin', 'comment' => '', 'precision' => null, 'fixed' => null],
|
||||||
|
'last_name' => ['type' => 'string', 'length' => 255, 'null' => true, 'default' => null, 'collate' => 'utf8_bin', 'comment' => '', 'precision' => null, 'fixed' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
'public_key' => ['type' => 'unique', 'columns' => ['public_key'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'index_id' => 1,
|
||||||
|
'group_id' => 1,
|
||||||
|
'public_key' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'email' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'first_name' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'last_name' => 'Lorem ipsum dolor sit amet'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
50
tests/Fixture/TransactionCreationsFixture.php
Normal file
50
tests/Fixture/TransactionCreationsFixture.php
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransactionCreationsFixture
|
||||||
|
*/
|
||||||
|
class TransactionCreationsFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'transaction_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'state_user_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'amount' => ['type' => 'biginteger', 'length' => 20, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'ident_hash' => ['type' => 'binary', 'length' => 32, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'transaction_id' => 1,
|
||||||
|
'state_user_id' => 1,
|
||||||
|
'amount' => 1,
|
||||||
|
'ident_hash' => 'Lorem ipsum dolor sit amet'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
54
tests/Fixture/TransactionSendCoinsFixture.php
Normal file
54
tests/Fixture/TransactionSendCoinsFixture.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransactionSendCoinsFixture
|
||||||
|
*/
|
||||||
|
class TransactionSendCoinsFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'transaction_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'state_user_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'receiver_public_key' => ['type' => 'binary', 'length' => 32, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'receiver_user_id' => ['type' => 'binary', 'length' => 64, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'amount' => ['type' => 'biginteger', 'length' => 20, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'sender_final_balance' => ['type' => 'biginteger', 'length' => 20, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'transaction_id' => 1,
|
||||||
|
'state_user_id' => 1,
|
||||||
|
'receiver_public_key' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'receiver_user_id' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'amount' => 1,
|
||||||
|
'sender_final_balance' => 1
|
||||||
|
],
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
48
tests/Fixture/TransactionSignaturesFixture.php
Normal file
48
tests/Fixture/TransactionSignaturesFixture.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransactionSignaturesFixture
|
||||||
|
*/
|
||||||
|
class TransactionSignaturesFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'transaction_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'signature' => ['type' => 'binary', 'length' => 64, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'pubkey' => ['type' => 'binary', 'length' => 32, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'transaction_id' => 1,
|
||||||
|
'signature' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'pubkey' => 'Lorem ipsum dolor sit amet'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
51
tests/Fixture/TransactionTypesFixture.php
Normal file
51
tests/Fixture/TransactionTypesFixture.php
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransactionTypesFixture
|
||||||
|
*/
|
||||||
|
class TransactionTypesFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'name' => ['type' => 'string', 'length' => 24, 'null' => false, 'default' => null, 'collate' => 'utf8_bin', 'comment' => '', 'precision' => null, 'fixed' => null],
|
||||||
|
'text' => ['type' => 'string', 'length' => 255, 'null' => false, 'default' => null, 'collate' => 'utf8_bin', 'comment' => '', 'precision' => null, 'fixed' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'name' => 'creation',
|
||||||
|
'text' => 'Aktives oder Bedingsungsloses Grundeinkommen'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'id' => 2,
|
||||||
|
'name' => 'transfer',
|
||||||
|
'text' => 'Einfache Überweisung'
|
||||||
|
]
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
52
tests/Fixture/TransactionsFixture.php
Normal file
52
tests/Fixture/TransactionsFixture.php
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\Fixture;
|
||||||
|
|
||||||
|
use Cake\TestSuite\Fixture\TestFixture;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransactionsFixture
|
||||||
|
*/
|
||||||
|
class TransactionsFixture extends TestFixture
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
// @codingStandardsIgnoreStart
|
||||||
|
public $fields = [
|
||||||
|
'id' => ['type' => 'biginteger', 'length' => 20, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'autoIncrement' => true, 'precision' => null],
|
||||||
|
'group_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'transaction_type_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
|
||||||
|
'tx_hash' => ['type' => 'binary', 'length' => 32, 'null' => false, 'default' => null, 'comment' => '', 'precision' => null],
|
||||||
|
'memo' => ['type' => 'string', 'length' => 255, 'null' => false, 'default' => null, 'collate' => 'utf8_bin', 'comment' => '', 'precision' => null, 'fixed' => null],
|
||||||
|
'received' => ['type' => 'timestamp', 'length' => null, 'null' => false, 'default' => 'CURRENT_TIMESTAMP', 'comment' => '', 'precision' => null],
|
||||||
|
'_constraints' => [
|
||||||
|
'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
|
||||||
|
],
|
||||||
|
'_options' => [
|
||||||
|
'engine' => 'InnoDB',
|
||||||
|
'collation' => 'utf8_bin'
|
||||||
|
],
|
||||||
|
];
|
||||||
|
// @codingStandardsIgnoreEnd
|
||||||
|
/**
|
||||||
|
* Init method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
$this->records = [
|
||||||
|
[
|
||||||
|
'id' => 1,
|
||||||
|
'group_id' => 1,
|
||||||
|
'transaction_type_id' => 1,
|
||||||
|
'tx_hash' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'memo' => 'Lorem ipsum dolor sit amet',
|
||||||
|
'received' => 1572973566
|
||||||
|
],
|
||||||
|
];
|
||||||
|
parent::init();
|
||||||
|
}
|
||||||
|
}
|
||||||
45
tests/TestCase/Controller/DashboardControllerTest.php
Normal file
45
tests/TestCase/Controller/DashboardControllerTest.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\TestCase\Controller;
|
||||||
|
|
||||||
|
use App\Controller\DashboardController;
|
||||||
|
use Cake\TestSuite\IntegrationTestTrait;
|
||||||
|
use Cake\TestSuite\TestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App\Controller\DashboardController Test Case
|
||||||
|
*
|
||||||
|
* @uses \App\Controller\DashboardController
|
||||||
|
*/
|
||||||
|
class DashboardControllerTest extends TestCase
|
||||||
|
{
|
||||||
|
use IntegrationTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fixtures
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $fixtures = [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test initialize method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testInitialize()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test index method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testIndex()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -35,9 +35,9 @@ class PagesControllerTest extends IntegrationTestCase
|
|||||||
public function testMultipleGet()
|
public function testMultipleGet()
|
||||||
{
|
{
|
||||||
$this->get('/');
|
$this->get('/');
|
||||||
$this->assertResponseOk();
|
$this->assertRedirect('account/');
|
||||||
$this->get('/');
|
$this->get('/');
|
||||||
$this->assertResponseOk();
|
$this->assertRedirect('account/');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,97 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\TestCase\Controller;
|
||||||
|
|
||||||
|
use App\Controller\TransactionCreationsController;
|
||||||
|
use Cake\TestSuite\IntegrationTestTrait;
|
||||||
|
use Cake\TestSuite\TestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App\Controller\TransactionCreationsController Test Case
|
||||||
|
*
|
||||||
|
* @uses \App\Controller\TransactionCreationsController
|
||||||
|
*/
|
||||||
|
class TransactionCreationsControllerTest extends TestCase
|
||||||
|
{
|
||||||
|
use IntegrationTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fixtures
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $fixtures = [
|
||||||
|
'app.TransactionCreations',
|
||||||
|
'app.Transactions',
|
||||||
|
'app.StateUsers'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test initialize method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testInitialize()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test index method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testIndex()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test view method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testView()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test create method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testCreate()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test add method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testAdd()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test edit method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testEdit()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test delete method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testDelete()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Test\TestCase\Controller;
|
||||||
|
|
||||||
|
use App\Controller\TransactionJsonRequestHandlerController;
|
||||||
|
use Cake\TestSuite\IntegrationTestTrait;
|
||||||
|
use Cake\TestSuite\TestCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* App\Controller\TransactionJsonRequestHandlerController Test Case
|
||||||
|
*
|
||||||
|
* @uses \App\Controller\TransactionJsonRequestHandlerController
|
||||||
|
*/
|
||||||
|
class TransactionJsonRequestHandlerControllerTest extends TestCase
|
||||||
|
{
|
||||||
|
use IntegrationTestTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fixtures
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $fixtures = [
|
||||||
|
'app.TransactionCreations',
|
||||||
|
'app.Transactions',
|
||||||
|
'app.StateUsers',
|
||||||
|
'app.TransactionSignatures',
|
||||||
|
'app.TransactionSendCoins',
|
||||||
|
'app.StateBalances',
|
||||||
|
'app.TransactionTypes'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test initialize method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testInitialize()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test index method
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testIndex()
|
||||||
|
{
|
||||||
|
//$this->markTestIncomplete('Not implemented yet.');
|
||||||
|
$this->post('/TransactionJsonRequestHandler', ['method' => 'putTransaction', 'transaction' => 'CgpIYWxsbyBXZWx0EgYIyfSG7gVKLwonCiCboKikqwjZfes9xuqgthFH3/cHHaWchkUhWiGhQjB23xCg2pMBELWJ7ZYK']);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user