-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathTokenTransferBuilder.php
More file actions
38 lines (30 loc) · 1.03 KB
/
TokenTransferBuilder.php
File metadata and controls
38 lines (30 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
declare(strict_types=1);
namespace ArkEcosystem\Crypto\Transactions\Builder;
use ArkEcosystem\Crypto\Enums\AbiFunction;
use ArkEcosystem\Crypto\Enums\ContractAbiType;
use ArkEcosystem\Crypto\Helpers;
use ArkEcosystem\Crypto\Transactions\Types\AbstractTransaction;
use ArkEcosystem\Crypto\Transactions\Types\EvmCall;
use ArkEcosystem\Crypto\Utils\AbiEncoder;
use Brick\Math\BigDecimal;
class TokenTransferBuilder extends AbstractTransactionBuilder
{
public function contractAddress(string $address): self
{
return $this->to($address);
}
public function recipient(string $address, BigDecimal $amount): self
{
$payload = (new AbiEncoder(ContractAbiType::TOKEN))->encodeFunctionCall(
AbiFunction::TRANSFER->value,
[$address, $amount]
);
$this->transaction->data['data'] = Helpers::removeLeadingHexZero($payload);
return $this;
}
protected function getTransactionInstance(array $data): AbstractTransaction
{
return new EvmCall($data);
}
}