-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
support transferToAccountId32 for Tokens (#165)
* support transferToAccountId32 for Tokens * format * generate deployedBytecode
- Loading branch information
1 parent
a10f8c8
commit 5e05a98
Showing
9 changed files
with
858 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
nodeLinker: node-modules | ||
|
||
npmRegistryServer: "https://registry.npmjs.org/" | ||
|
||
yarnPath: .yarn/releases/yarn-3.6.0.cjs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,227 @@ | ||
# IToken | ||
|
||
*Acala Developers* | ||
|
||
> IToken Predeploy Contract Interface | ||
You can use this predeploy contract to call currencies pallet | ||
|
||
*The interface through which solidity contracts will interact with currencies pallet* | ||
|
||
## Methods | ||
|
||
### allowance | ||
|
||
```solidity | ||
function allowance(address owner, address spender) external view returns (uint256) | ||
``` | ||
|
||
|
||
|
||
*Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| owner | address | undefined | | ||
| spender | address | undefined | | ||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | uint256 | undefined | | ||
|
||
### approve | ||
|
||
```solidity | ||
function approve(address spender, uint256 amount) external nonpayable returns (bool) | ||
``` | ||
|
||
|
||
|
||
*Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| spender | address | undefined | | ||
| amount | uint256 | undefined | | ||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | bool | undefined | | ||
|
||
### balanceOf | ||
|
||
```solidity | ||
function balanceOf(address account) external view returns (uint256) | ||
``` | ||
|
||
|
||
|
||
*Returns the amount of tokens owned by `account`.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| account | address | undefined | | ||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | uint256 | undefined | | ||
|
||
### totalSupply | ||
|
||
```solidity | ||
function totalSupply() external view returns (uint256) | ||
``` | ||
|
||
|
||
|
||
*Returns the amount of tokens in existence.* | ||
|
||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | uint256 | undefined | | ||
|
||
### transfer | ||
|
||
```solidity | ||
function transfer(address to, uint256 amount) external nonpayable returns (bool) | ||
``` | ||
|
||
|
||
|
||
*Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| to | address | undefined | | ||
| amount | uint256 | undefined | | ||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | bool | undefined | | ||
|
||
### transferFrom | ||
|
||
```solidity | ||
function transferFrom(address from, address to, uint256 amount) external nonpayable returns (bool) | ||
``` | ||
|
||
|
||
|
||
*Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| from | address | undefined | | ||
| to | address | undefined | | ||
| amount | uint256 | undefined | | ||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | bool | undefined | | ||
|
||
### transferToAccountId32 | ||
|
||
```solidity | ||
function transferToAccountId32(bytes32 dest, uint256 amount) external nonpayable returns (bool) | ||
``` | ||
|
||
Moves `amount` tokens from the caller's account to `dest`, which is AccountId32 type account. | ||
|
||
*It'll emit an {TransferToAccountId32} event. The caller must have a balance of at least `amount`.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| dest | bytes32 | The dest AccountId32 type account, it cannot be the zero AccountId32. | | ||
| amount | uint256 | The transfer amount. | | ||
|
||
#### Returns | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| _0 | bool | Returns a boolean value indicating whether the operation succeeded. | | ||
|
||
|
||
|
||
## Events | ||
|
||
### Approval | ||
|
||
```solidity | ||
event Approval(address indexed owner, address indexed spender, uint256 value) | ||
``` | ||
|
||
|
||
|
||
*Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| owner `indexed` | address | undefined | | ||
| spender `indexed` | address | undefined | | ||
| value | uint256 | undefined | | ||
|
||
### Transfer | ||
|
||
```solidity | ||
event Transfer(address indexed from, address indexed to, uint256 value) | ||
``` | ||
|
||
|
||
|
||
*Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| from `indexed` | address | undefined | | ||
| to `indexed` | address | undefined | | ||
| value | uint256 | undefined | | ||
|
||
### TransferToAccountId32 | ||
|
||
```solidity | ||
event TransferToAccountId32(address indexed sender, bytes32 indexed dest, uint256 amount) | ||
``` | ||
|
||
Transfer event to AccountId32 type account. | ||
|
||
*This is Transfer event which transfer AccountId32 type account.* | ||
|
||
#### Parameters | ||
|
||
| Name | Type | Description | | ||
|---|---|---| | ||
| sender `indexed` | address | The sender of the transaction. | | ||
| dest `indexed` | bytes32 | The dest AccountId32 type account. | | ||
| amount | uint256 | The transfer amount. | | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
// SPDX-License-Identifier: GPL-3.0-or-later | ||
|
||
// inherit on IERC20 interface of @openzeppelin/contracts (v4.5.0): | ||
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.5.0/contracts/token/ERC20/IERC20.sol | ||
|
||
pragma solidity ^0.8.0; | ||
|
||
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; | ||
|
||
/// @title IToken Predeploy Contract Interface | ||
/// @author Acala Developers | ||
/// @notice You can use this predeploy contract to call currencies pallet | ||
/// @dev The interface through which solidity contracts will interact with currencies pallet | ||
interface IToken is IERC20 { | ||
/// @notice Transfer event to AccountId32 type account. | ||
/// @param sender The sender of the transaction. | ||
/// @param dest The dest AccountId32 type account. | ||
/// @param amount The transfer amount. | ||
/// @dev This is Transfer event which transfer AccountId32 type account. | ||
event TransferToAccountId32( | ||
address indexed sender, | ||
bytes32 indexed dest, | ||
uint256 amount | ||
); | ||
|
||
/// @notice Moves `amount` tokens from the caller's account to `dest`, which is AccountId32 type account. | ||
/// @dev It'll emit an {TransferToAccountId32} event. The caller must have a balance of at least `amount`. | ||
/// @param dest The dest AccountId32 type account, it cannot be the zero AccountId32. | ||
/// @param amount The transfer amount. | ||
/// @return Returns a boolean value indicating whether the operation succeeded. | ||
function transferToAccountId32( | ||
bytes32 dest, | ||
uint256 amount | ||
) external returns (bool); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.