# Тестирование MetaForceSpace SDK
:::info
:bulb: Данный документ описывает поэтапный ход тестирования функциий MetaForceSpace SDK. Описываются входные данные и получаемый результат.
:::
## :heavy_check_mark: Результаты
Здесь будет размещена итоговая информация.<br>
<div id="check_list">
<details>
<summary><b>Чек-лист тестирования</b></summary>
- [x] getStats
- [x] getUserID
- [x] getUserInfo
- [x] getPacks
- [x] getRevenueStable
- [x] getRevenueMFS
- [x] getDirectReferalPage
- [x] getDirectReferalUserInfo
- [x] getUsersInfoInMarketingTree
- [x] getMarketingReferalUserInfo
- [x] getAvatar
- [x] getLostStableCoin
- [x] getRewardType
- [x] getTotalPossibilityForByingMFS
- [x] getPossibilityForBuyingMFSPage
- [x] getPossibilityForBuyingMFSLength
- [x] getPossibilityForBuyingMFS
- [ ] getDepositIds
- [ ] getDeposit
- [x] getRequestIds
- [x] getRequest
- [x] getQueue
- [x] getBalancesOnWallet
- [x] getBalancesOnPayment
- [x] getRecentActivity
- [x] setTypeReward
- [x] activationPack
- [x] renewPackForMFS
- [ ] renewPackForSetHMFS
- [x] buyMFS
- [x] createRequestMfs
- [x] deleteRequestMfs
- [ ] hold
- [ ] unhold
- [ ] withdrawHMFS
- [x] addToPayment
- [x] getBalanceInPayment
</details>
</div>
## :writing_hand: Порядок действий
<div id="steps">
<details>
<summary>Подробности</summary><br>
- [x] **Добавить стейблкоины на платежный канал в Metapayment;**<br><br>
**addToPayment** (добавление 100 стейблкоинов)
> :::info
> Ввод:
> :::
```node
forceDelta.addToPayment("0x9908Ea27465af9d86dF38aCA16FFce67a3c33A1c", "100").then(console.log)
```
>:::success
> Вывод: Прошла
> :::
**getBalanceInPayment**
> :::info
> Ввод:
> :::
```node
forceDelta.getBalanceInPayment("0x9908Ea27465af9d86dF38aCA16FFce67a3c33A1c").then(console.log)
```
>:::success
> Вывод:
> :::
```node=
100.0
```
---
- [x] **Активировать первый пакет MFS (ReferrerId = 100);**<br><br>
Контракт MetaForce:
> 
#### Хэш транзакции (ссылка на [PolygonScan](https://mumbai.polygonscan.com/tx/0xbf0209b26c269c5dc9056c94d0a8b66150f8021130409caf2f544ac43b3c8972))
```node
0xbf0209b26c269c5dc9056c94d0a8b66150f8021130409caf2f544ac43b3c8972
```
---
- [x] **Проверить Holding (с помощью изменения срока заморозки в контракте)**
</details>
</div>
## :pencil: Список функций
:::warning
Список всех тестируемых функций. C комментариями по необходимости.
:::
### 1. **getStats**
> :::info
> Ввод:
> :::
```node
forceDelta.getStats().then(console.log)
```
>:::success
> Вывод:
> :::
```node
{
firstPackPriceInMFS: '200.0',
mfsPriceInUSD: '0.25',
mfsTotalEmission: '2192200.0',
workflowStage: 1
}
```
---
### 2. **getUserID**
> :::info
> Ввод:
> :::
```node
forceDelta.getUserID().then(console.log)
```
>:::success
> Вывод:
> :::
```node=
101
```
---
### 3. **getUserInfo**
> :::info
> Ввод:
> :::
```node
forceDelta.getUserInfo().then(console.log)
```
>:::success
> Вывод:
> :::
```node
{ rewardType: 0, level: 1, registeredAt: 2023-01-20T08:37:42.000Z }
```
---
### 4. **getPacks**
> :::info
> Ввод:
> :::
```node
forceDelta.getPacks().then(console.log)
```
>:::success
> Вывод:
> :::
```node
[
{
isActive: true,
timeStampEndPack: 2023-02-22T08:14:01.000Z,
countRenewal: BigNumber { _hex: '0x00', _isBigNumber: true }
}
]
```
---
### 5. **getDirectReferalPage**
> :::info
> Ввод:
> :::
```node
forceDelta.getDirectReferalPage(3, 0, 5).then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
[
{
userId: 6,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0xe455bf8ea6e7463a1046a0b52804526e119b4bf5136279614e0b1e8e296a4e2d.jpg',
alias: '',
referrerId: 5,
referralsAmount: 0
},
{
userId: 8,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10.jpg',
alias: '',
referrerId: 5,
referralsAmount: 0
},
{
userId: 39,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0x318a541463286d7584b45438601196fbc1a55628e303a0613eb6d46e60640c95.jpg',
alias: '',
referrerId: 5,
referralsAmount: 0
}
]
```
---
### 6. **getDirectReferalUserInfo**
> :::info
> Ввод:
> :::
```node
forceDelta.getDirectReferalUserInfo(101).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
{
userId: 101,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0xf9535bac1c0dacfe011b6a07ce55ad3fdc761de7345d7b004778e93b9d222ae5.jpg',
alias: '',
referrerId: 1,
referralsAmount: 0
}
```
---
### 7. **getAvatar**
> :::info
> Ввод:
> :::
```node
forceDelta.getAvatar(101).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0xf9535bac1c0dacfe011b6a07ce55ad3fdc761de7345d7b004778e93b9d222ae5.jpg
```
---
### 8. **getTotalPossibilityForByingMFS**
> :::info
> Ввод:
> :::
```node
forceDelta.getTotalPossibilityForByingMFS().then(console.log)
```
>:::success
> Вывод:
> :::
```node=
200.0
```
---
### 9. **getPossibilityForBuyingMFSPage**
> :::info
> Ввод:
> :::
```node
forceDelta.getPossibilityForBuyingMFSPage(20, 0).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[ { endBuyingPeriodDate: 2023-02-22T08:14:01.000Z, amount: '200.0' } ]
```
---
### 10. **getPossibilityForBuyingMFSLength**
> :::info
> Ввод:
> :::
```node
forceDelta.getPossibilityForBuyingMFSLength(101).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
1
```
---
### 11. **getPossibilityForBuyingMFS**
> :::info
> Ввод:
> :::
```node
forceDelta.getPossibilityForBuyingMFS(101, 0).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
{ endBuyingPeriodDate: 2023-02-22T08:14:01.000Z, amount: '200.0' }
```
---
### 12. **buyMFS**
> :::info
> Ввод:
> :::
```node
forceDelta.buyMFS("200").then(console.log)
```
>:::success
> Вывод: Прошла
> :::
---
### 13. **getBalancesOnPayment**
> :::info
> Ввод:
> :::
```node
forceDelta.getBalancesOnPayment().then(console.log)
```
>:::success
> Вывод:
> :::
```node=
{
mfs: '200.0',
stablecoin: '0.0',
energy: '200.0',
hMfs: [
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0'
]
}
```
---
### 14. **renewPackForMFS**
> :::info
> Ввод:
> :::
```node
forceDelta.renewPackForMFS(1, 1).then(console.log)
```
> **Проверка продления на 1 месяц:**
>:::info
> Ввод:
> :::
```node
forceDelta.getPacks().then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[
{
isActive: true,
timeStampEndPack: 2023-03-24T08:14:01.000Z,
countRenewal: BigNumber { _hex: '0x00', _isBigNumber: true }
}
]
```
---
### 15. **createRequestMfs**
> :::info
> Ввод:
> :::
```node
forceDelta.createRequestMfs("50").then(console.log)
```
>:::success
> Вывод:
> :::
```node=
1
```
---
### 16. **getRequest**
> :::info
> Ввод:
> :::
```node
forceDelta.getRequest(1).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
requester: BigNumber { _hex: '0x65', _isBigNumber: true },
usdAmount: '50.0',
priority: 1,
placeInQueue: 1
```
:heavy_exclamation_mark: Для несуществующих запросов placeInQueue = 1
---
### 17. **getRequestIds**
> :::info
> Ввод:
> :::
```node
forceDelta.getRequestIds().then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[ 1 ]
```
---
### 18. **getQueue**
> :::info
> Ввод:
> :::
```node
forceDelta.getQueue(20, 0).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[
1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0
]
```
---
### 19. **getBalancesOnWallet**
> :::info
> Ввод:
> :::
```node
forceDelta.getBalancesOnWallet().then(console.log)
```
>:::success
> Вывод:
> :::
```node=
{
mfs: '0.0',
stablecoin: '99800.0',
energy: '0.0',
hMfs: [
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0'
]
}
```
---
### 20. **getRecentActivity**
> :::info
> Ввод:
> :::
```node
forceDelta.getRecentActivity(3, 1, 2).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[
{
userId: '100',
name: 'RevenueMFS',
date: '2023-01-14T16:18:32.000000Z',
value: '80000000000000000000'
},
{
userId: '100',
name: 'RevenueMFS',
date: '2023-01-14T16:18:26.000000Z',
value: '40000000000000000000'
},
{
userId: '100',
name: 'RevenueMFS',
date: '2023-01-14T16:18:20.000000Z',
value: '20000000000000000000'
}
]
```
---
### 21. **deleteRequestMfs**
> :::info
> Ввод:
> :::
```node
forceDelta.deleteRequestMfs(1).then(console.log)
```
>:::success
> Вывод: Прошла
> :::
```node=
to: '0xA4D653F3208576e780caA4F205603AeCfa209180',
from: '0x5b421cF148b0234bb3E38C7f173a1c58F2745255',
contractAddress: null,
transactionIndex: 9,
gasUsed: BigNumber { _hex: '0x01d545', _isBigNumber: true },
blockHash: '0x2c29239d4e6cac90ac0ca9c31aa192c23d6973681a9b221a20153dc1998e1b72',
transactionHash: '0x7c6793b3aab2b5288bb561da899a604a93522f7c18bb2e58642f84b8e0e32e07'
```
- getRequest (проверка на удаление):
```node=
> forceDelta.getRequest(1).then(console.log)
> {
requester: BigNumber { _hex: '0x65', _isBigNumber: true },
usdAmount: '0.0',
priority: 1,
placeInQueue: 1
}
```
---
### 22. **setTypeReward**
> :::info
> Ввод:
> :::
```node
forceDelta.setTypeReward(1).then(console.log)
```
>:::success
> Вывод: Прошла
> :::
```node=
to: '0x309dE5395630ed2d1fdd0a25B860f25BfABf2fdA',
from: '0x5b421cF148b0234bb3E38C7f173a1c58F2745255',
contractAddress: null,
transactionIndex: 6,
gasUsed: BigNumber { _hex: '0x011838', _isBigNumber: true },
blockHash:'0x68c146e50da97040659b11d611db2fb9c10cd474bbc1f11174ecd69aa07106b1',
transactionHash:'0xb76a24b47a59caf506fcdb6f98adad1dd0087d7790c5a76086bae8caf7910e61'
```
---
### 23. **getRewardType**
> :::info
> Ввод:
> :::
```node
forceDelta.getRewardType(101).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
1
```
### 24. **getRevenueStable**
> :::info
> Ввод:
> :::
```node
forceDelta.getRevenueStable("20 day", 10, 1).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[
'6.25', '6.25',
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0'
]
```
### 25. **getRevenueMFS**
> :::info
> Ввод:
> :::
```node
forceDelta.getRevenueMFS("20 day", 10, 2).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
[
'20.0', '20.0',
'20.0', '20.0',
'20.0', '20.0',
'20.0', '0.0',
'0.0', '0.0'
]
```
---
### 26. **getMarketingReferalUserInfo**
> :::info
> Ввод:
> :::
```node
forceDelta.getMarketingReferalUserInfo(5).then(console.log)
```
>:::success
> Вывод:
> :::
```node=
{
userId: 5,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0xceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1.jpg',
alias: '',
referrerId: 2,
referralIds: [ 105, 103 ]
}
```
---
### 27. **hold**
> :::info
> Ввод:
> :::
```node
forceDelta.hold(1, "50").then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
to: '0xA45322D6E9592011d62A73E683Ba9517D5dFf359',
from: '0x566f5AD9d71C9AaF9F847c37Ff04DbC9645A3216',
contractAddress: null,
transactionIndex: 2,
gasUsed: BigNumber { _hex: '0x0403cd', _isBigNumber: true }
transactionHash: '0xafc629f7dbbd02837a8df75ad90d6efc0b3cdd8c63ce3853ae405c2308000099'
```
---
### 28. **getDepositIds**
> :::info
> Ввод:
> :::
```node
forceDelta.getDepositIds().then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
[ 0 ]
```
---
### 29. **getDeposit**
> :::info
> Ввод:
> :::
```node
forceDelta.getDeposit(0).then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
{
holderId: 105,
unholdingAllowed: true,
level: 1,
amount: '50.0',
lockedUntil: 2023-02-15T12:04:09.000Z
}
```
---
### 30. **unhold**
> :::info
> Ввод:
> :::
```node
forceDelta.unhold(0, "50").then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
to: '0xA45322D6E9592011d62A73E683Ba9517D5dFf359',
from: '0x566f5AD9d71C9AaF9F847c37Ff04DbC9645A3216',
contractAddress: null,
transactionIndex: 3,
gasUsed: BigNumber { _hex: '0x0185d4', _isBigNumber: true }
blockHash: '0xb6119fc769f3e2c2b4fd658b38332e1c6b43d07bb2ec0caeae38c99470a78645',
transactionHash: '0xd3c807eb702e5bfa61db606b9fc1f327c056798ac3a220e6cc3b4781bc0d1c0a'
```
---
### 31. **withdrawHMFS**
> :::info
> Ввод:
> :::
```node
forceDelta.getBalancesOnPayment().then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
{
mfs: '100.0',
stablecoin: '89925.0',
energy: '200.0',
hMfs: [
'50.0', '0.0',
'0.0', '0.0',
'0.0', '0.0',
'0.0', '0.0'
]
}
```
---
### 32. **renewPackForSetHMFS**
> :::info
> Ввод:
> :::
```node=
> forceDelta.getPacks().then(console.debug)
> [
{
isActive: true,
timeStampEndPack: 2023-02-24T12:39:02.000Z,
countRenewal: BigNumber { _hex: '0x00', _isBigNumber: true }
}
]
> forceDelta.renewPackForSetHMFS(1, 1, ["50", "0", "0", "0", "0", "0", "0", "0"]).then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
> forceDelta.getPacks().then(console.debug)
> [
{
isActive: true,
timeStampEndPack: 2023-03-26T12:39:02.000Z,
countRenewal: BigNumber { _hex: '0x01', _isBigNumber: true }
}
]
```
---
### 33. **getUsersInfoInMarketingTree**
> :::info
> Ввод:
> :::
```node=
forceDelta.getUsersInfoInMarketingTree(1, 1, 103).then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
[
{
userId: 104,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0x2e5129c19be59da29ff89133759e8d7e21d926bf22eda9cdfd27c0cd8774b8c2.jpg',
alias: '',
referrerId: 103,
referralIds: []
},
{
userId: 49,
avatar: 'https://metaforce-hub.fra1.digitaloceanspaces.com/avatars/0x59c0d2b7af0a8e6d3d8e710a078764bd67b7223777026c424cdb4f599824bb79.jpg',
alias: '',
referrerId: 103,
referralIds: [ 51 ]
}
]
```
---
### 34. **getLostStableCoin**
> :::info
> Ввод:
> :::
```node=
forceDelta.getLostStableCoin("1 month", 5).then(console.debug)
```
>:::success
> Вывод:
> :::
```node=
14880.0
```