From 73faf73d1437bb082cd4e2f1158f5ac707d459c7 Mon Sep 17 00:00:00 2001
From: Victor Chepkasov <92711919+SugaryVictor@users.noreply.github.com>
Date: Wed, 30 Aug 2023 08:27:39 +0500
Subject: [PATCH] edit scripts
---
scripts/metadata/1.json | 6 +-
scripts/metadata_hashes.json | 2 +-
scripts/nft_promissory_class.py | 60 ++++++++++++++++++
.../{nft_promissory.py => token_scripts.py} | 62 +------------------
tests/conftest.py | 2 +-
tests/test_nft_promissory.py | 17 +++--
6 files changed, 76 insertions(+), 73 deletions(-)
create mode 100644 scripts/nft_promissory_class.py
rename scripts/{nft_promissory.py => token_scripts.py} (55%)
diff --git a/scripts/metadata/1.json b/scripts/metadata/1.json
index f44d024..f326eaf 100644
--- a/scripts/metadata/1.json
+++ b/scripts/metadata/1.json
@@ -5,11 +5,11 @@
"attributes": [
{
"trait_type": "Holder address",
- "value": "0x1d9458A5F6A5207478207fA4e3C491A9B20d434F"
+ "value": "0xE4B9efD42Ba4d46d5D4CAe1fa71950f10f01B65e"
},
{
"trait_type": "Debtor address",
- "value": "0x6178FF3747b0d7B7D18CBeF99D82ed789CE05182"
+ "value": "0x4cD3d2f42b651b5bc543221DAF1F138147D92387"
},
{
"trait_type": "NFT id",
@@ -28,7 +28,7 @@
{
"display_type": "date",
"trait_type": "Date of registration",
- "value": 1692351515
+ "value": 6935975920661
},
{
"display_type": "date",
diff --git a/scripts/metadata_hashes.json b/scripts/metadata_hashes.json
index 860e5fa..0352154 100644
--- a/scripts/metadata_hashes.json
+++ b/scripts/metadata_hashes.json
@@ -1 +1 @@
-["", "", ""]
\ No newline at end of file
+["", "", "", "", "", ""]
\ No newline at end of file
diff --git a/scripts/nft_promissory_class.py b/scripts/nft_promissory_class.py
new file mode 100644
index 0000000..29c1492
--- /dev/null
+++ b/scripts/nft_promissory_class.py
@@ -0,0 +1,60 @@
+from brownie import PromissoryNFT, Promissory, accounts
+
+class Promissory:
+ def __init__(self, _promissory):
+ self.promissory = _promissory
+ self.holder = _promissory.promissory()[0]
+ self.token_id = _promissory.promissory()[2]
+
+ def set_holder_consent(self, _from):
+ self.promissory.setHolderConsent({
+ 'from': _from,
+ 'priority_fee': '0.2 gwei'
+ })
+ print('Holder consent saved!')
+
+ def set_debtor_consent(self, _from):
+ self.promissory.setDebtorConsent({
+ 'from': _from,
+ 'priority_fee': '0.2 gwei'
+ })
+ print('Debtor consent saved!')
+
+ # Оплата векселя
+ # Требование:
+ # - _from == debtor
+ def pay_promissory(self, _debtorAddress):
+ self.promissory.payPromissory({
+ 'from': _debtorAddress,
+ 'value': '1100 wei',
+ 'priority_fee': '10 wei'
+ })
+ # update_metadata(_from, token_id)
+ PromissoryNFT[-1].burnCollectible(self.token_id, {
+ 'from': self.holder,
+ 'priority_fee': '10 wei'
+ })
+ exist = PromissoryNFT[-1].existsCollectible(self.token_id, {
+ 'from': self.holder,
+ 'priority_fee': '10 wei'
+ })
+ assert exist == False
+ self.promissory.killContract({
+ 'from': self.holder,
+ 'priority_fee': '10 wei'
+ })
+ return exist
+
+ # Передача токена другому лицу (_to)
+ # Требование:
+ # - Разрешение распроряжаться токеном (approve) у передающего (owner)
+ # - Токен должен сущствовать
+ def transfer_token(self, to):
+ PromissoryNFT[-1].transferFrom(self.holder, to, self.token_id, {
+ 'from': self.holder,
+ 'priority_fee': '10 wei'
+ })
+ self.promissory.setNewHolder(to, {
+ 'from': self.holder,
+ 'priority_fee': '10 wei'
+ })
\ No newline at end of file
diff --git a/scripts/nft_promissory.py b/scripts/token_scripts.py
similarity index 55%
rename from scripts/nft_promissory.py
rename to scripts/token_scripts.py
index 6989302..1ff1382 100644
--- a/scripts/nft_promissory.py
+++ b/scripts/token_scripts.py
@@ -17,10 +17,10 @@ def deploy_promissory_nft(_from):
# Получение адреса контракта векселя по id,
def get_promissory(_from, promissory_id):
- info = PromissoryNFT[-1].getPromissory(promissory_id, {
+ promissory = PromissoryNFT[-1].getPromissory(promissory_id, {
'from': _from
})
- return Promissory.at(info)
+ return Promissory.at(promissory)
# Создание контракта, метаданных и выпуск токена
def create_promissory(_from, _debtor, _promissory_commission, _promissory_amount, _date_of_close):
@@ -47,22 +47,6 @@ def create_promissory(_from, _debtor, _promissory_commission, _promissory_amount
})
print('Token minted!')
-def set_holder_consent(_from, token_id):
- promissory = get_promissory(_from, token_id)
- promissory.setHolderConsent({
- 'from':_from,
- 'priority_fee': '0.2 gwei'
- })
- print('Holder consent saved!')
-
-def set_debtor_consent(_from, token_id):
- promissory = get_promissory(_from, token_id)
- promissory.setDebtorConsent({
- 'from':_from,
- 'priority_fee': '0.2 gwei'
- })
- print('Debtor consent saved!')
-
# получение разрешения контракту передавать токен
# _from - владелец токена
# _to - лицо, которому даётся возможность управлять токеном
@@ -72,44 +56,4 @@ def approve(_from, _to, token_id):
'from': _from,
'priority_fee': '10 wei'
})
- print('Approved!')
-
-# Оплата векселя
-# Требование:
-# - _from == debtor
-def pay_promissory(_from, token_id):
- promissory = get_promissory(_from, token_id)
- promissory.payPromissory({
- 'from': _from,
- 'value': '1100 wei',
- 'priority_fee': '10 wei'
- })
- # update_metadata(_from, token_id)
- PromissoryNFT[-1].burnCollectible(token_id, {
- 'from': _from,
- 'priority_fee': '10 wei'
- })
- exist = PromissoryNFT[-1].existsCollectible(token_id, {
- 'from': _from,
- 'priority_fee': '10 wei'
- })
- promissory.killContract({
- 'from': _from,
- 'priority_fee': '10 wei'
- })
- return exist
-
-# Передача токена другому лицу (_to)
-# Требование:
-# - Разрешение распроряжаться токеном (approve) у передающего (owner)
-# - Токен должен сущствовать
-def transfer_token(owner, to, token_id):
- PromissoryNFT[-1].transferFrom(owner, to, token_id, {
- 'from': owner,
- 'priority_fee': '10 wei'
- })
- promissory = get_promissory(owner, token_id)
- promissory.setNewHolder(to, {
- 'from': owner,
- 'priority_fee': '10 wei'
- })
\ No newline at end of file
+ print('Approved!')
\ No newline at end of file
diff --git a/tests/conftest.py b/tests/conftest.py
index f25bde3..028d4ac 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,7 +1,7 @@
import pytest
from brownie import accounts, network
from scripts.promissory import deploy_promissory
-from scripts.nft_promissory import deploy_promissory_nft
+from scripts.token_scripts import deploy_promissory_nft
@pytest.fixture(scope='session')
def holder():
diff --git a/tests/test_nft_promissory.py b/tests/test_nft_promissory.py
index ca07f5f..99674cf 100644
--- a/tests/test_nft_promissory.py
+++ b/tests/test_nft_promissory.py
@@ -1,14 +1,11 @@
import pytest
from brownie import PromissoryNFT, chain
from conftest import *
-from scripts.nft_promissory import (
+from scripts.nft_promissory_class import *
+from scripts.token_scripts import (
get_promissory,
create_promissory,
- set_holder_consent,
- set_debtor_consent,
- pay_promissory,
approve,
- transfer_token
)
def test_nft_promissory_deploy(promissory_nft):
@@ -30,18 +27,20 @@ def test_get_promissory_token_info(holder, debtor, promissory_nft):
def test_pay_promissory(holder, debtor, promissory_nft):
create_promissory(holder, debtor, 10, 1000, 1693335600)
token_id = PromissoryNFT[-1].tokenCounter()
- set_holder_consent(holder, token_id)
- set_debtor_consent(debtor, token_id)
- exist_token = pay_promissory(debtor, token_id)
+ promissory = Promissory(get_promissory(holder, token_id))
+ promissory.set_holder_consent(holder)
+ promissory.set_debtor_consent(debtor)
+ exist_token = promissory.pay_promissory(debtor)
assert exist_token == False
def test_transfer_token(holder, debtor, third_party, promissory_nft):
create_promissory(holder, debtor, 10, 1000, 1693335600)
token_id = PromissoryNFT[-1].tokenCounter()
+ promissory = Promissory(get_promissory(holder, token_id))
# _to - лицо, которому передаётся вексель
to = third_party if network.show_active() != 'development' else accounts[2]
approve(holder, PromissoryNFT[-1].address, token_id)
- transfer_token(holder, to, token_id)
+ promissory.transfer_token(to)
# получение ненешнего владельца токена векселя
owner = PromissoryNFT[-1].ownerOf(token_id, {
'from': to,