Skip to content

Commit

Permalink
edit metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
VictorChepkasov committed Aug 17, 2023
1 parent edb6e64 commit 6d98b46
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 122 deletions.
88 changes: 27 additions & 61 deletions scripts/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,105 +7,71 @@
load_dotenv()

metadata_template = {
"name": "",
"name": "crypto-promise",
"description": "",
"img": "",
"attributes": [
{
"trait_type": "holder address",
"trait_type": "Holder address",
"value": ""
},
{
"trait_type": "debtor address",
"trait_type": "Debtor address",
"value": ""
},
{
"trait_type": "NFT id",
"value": ""
},
{
"trait_type": "commission in percents",
"value": ""
"display_type": "number",
"trait_type": "Commission in percents",
"value": 0
},
{
"trait_type": "amount",
"value": ""
"display_type": "number",
"trait_type": "Amount to pay",
"value": 0
},
{
"trait_type": "date of registration",
"value": ""
"display_type": "date",
"trait_type": "Date of registration",
"value": 0
},
{
"trait_type": "date of close",
"value": ""
"display_type": "date",
"trait_type": "Date of close",
"value": 0
},
{
"trait_type": "date of holder consent",
"value": ""
"display_type": "date",
"trait_type": "Date of holder consent",
"value": 0
},
{
"trait_type": "date of debtor consent",
"value": ""
"display_type": "date",
"trait_type": "Date of debtor consent",
"value": 0
}
]
}

def main():
data = {
"name": "1",
"attributes": [
{
"trait_type": "holder address",
"value": "БУДУ"
},
{
"trait_type": "debtor address",
"value": "БРАТЬ"
},
{
"trait_type": "NFT id",
"value": "1"
},
{
"trait_type": "commission in percents",
"value": "ПЕЛЬМЕНИ"
},
{
"trait_type": "amount",
"value": "И КУШАТЬ"
},
{
"trait_type": "date of registration",
"value": "1692160516"
},
{
"trait_type": "date of close",
"value": "1692126000"
},
{
"trait_type": "date of holder consent",
"value": "0"
},
{
"trait_type": "date of debtor consent",
"value": "0"
}
]
}
update_pinata_metadata(data, 'Qmd61REBXVAvQybFR4Yex4KLkQRh92a8p9HkpCfvtsF9DY')
# def main():

def create_metadata(_from, token_id):
# кол-во выпущеных токенов
print(f'Token id: {token_id}')
# копируем шаблон метаданных
collectible_metadata = metadata_template.copy()
# имя токена = его id
collectible_metadata["name"] = str(token_id)
collectible_metadata["name"] = f"Cypto-promise {str(token_id)}"

# получаем инфу о контракте
promissory_info = get_promissory_info(_from, token_id)
print(f'Promissory info: {promissory_info}')
# сохраняем данные контракта в виде атрибутов
for i in range(9):
metadata_template["attributes"][i]["value"] = str(promissory_info[i])
metadata_template["attributes"][i]["value"] = str(promissory_info[i]) if type(metadata_template["attributes"][i]["value"]) == type('') else int(promissory_info[i])

# имя файла метаданных
metadata_filename = f"./scripts/metadata/tokens/{token_id}.json"
Expand Down Expand Up @@ -142,7 +108,7 @@ def update_metadata(_from, token_id):
json_file = json.load(f)
with open(metadata_filename, 'w') as metadata_file:
for i in range(9):
json_file["attributes"][i]['value'] = str(promissory_info[i])
json_file["attributes"][i]['value'] = str(promissory_info[i]) if type(json_file["attributes"][i]['value']) == type('') else int(promissory_info[i])
json.dump(json_file, metadata_file, indent=4)

#обновляю данные в Pinata
Expand Down
2 changes: 1 addition & 1 deletion scripts/metadata/metadata_hashes.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
["<https://ipfs.io/ipfs/QmaUGGU9jaBo3mnJ6vKPt7532QTBF7wFxEBhvzi6Q7RSNA>", "<https://ipfs.io/ipfs/QmSLz6vCHSWuvZAEqEUP2d1PGi8dSt7D3rzhsgZsKmy1ip>", "<https://ipfs.io/ipfs/QmQWfL74Uswr6o9C2RmdSNr4Fs4fRZzV4s3U7ztZFdu1Wo>", "<https://ipfs.io/ipfs/QmTURKZhMPzdwg6qwAMhJxYhM9RJS72u6srHsU1x26qrs1>", "<https://ipfs.io/ipfs/QmTXuzQh21wS9MZXgfg2caXKhGTbvyAmrPQL8Ee4bY9rbq>", "<https://ipfs.io/ipfs/QmXTvd7fG8mJCc7RT8yTD9zbzdAivYkmhdz3tr1yUPUopp>", "<https://ipfs.io/ipfs/QmRGeJpTzV9bVsDMpFyrtfV1eZ1cjHXzmkXoY3yhbZFKMG>", "<https://ipfs.io/ipfs/QmZSd6dMdf5o1zUdyra2tVjHFrU77r8s4ZRG5GDLVx26Ba>", "<https://ipfs.io/ipfs/QmViJpBVU1NVp55GXteFebd7MvcWaitTWKFA6cgFAtDwen>", "<https://ipfs.io/ipfs/QmfCSCzADrvPEUbqY8TFX6B4tBz2u1RBbS9sBEk2ebg6eP>", "<https://ipfs.io/ipfs/QmW3cnCr8zyVfsMJepT1W1wSdL5jJUz55TiFEEn5zpMQc7>", "<https://ipfs.io/ipfs/QmWJwTmGaE41NBznsBVH9NXMuuF7tuMXkDN4T8bug89fjQ>", "<https://ipfs.io/ipfs/QmdqMcX5bbrvmPKXEcH4gzMy3czuab1xEntkvwp9AzZHKT>", "<https://ipfs.io/ipfs/QmWpcskq6NmQKMs8y9xCd6qxhprhKK5aXbSyrGjABvxNwx>", "<https://ipfs.io/ipfs/QmW8qmwaU6hc57ePh2Qns88qxdFq9Y56cwMzaxUTS7s78H>", "<https://ipfs.io/ipfs/QmQtkqqGR4soZ1BL5Vcx7GqrxmGe4E8vaSAyRCNHuuDAWE>", "<https://ipfs.io/ipfs/QmQHmSV225aHtuDw5aFs62UQGaoyNsJAwsA9BC8z5ZpPy4>", "<https://ipfs.io/ipfs/QmdQAKxnJtoGKcWzFQsvTQSbefvSSBqfz9HYGd6NGRvzHF>", "<https://ipfs.io/ipfs/QmU3xLkWecxcxkkAKhXkJawmFHi4h3vM4ZFUerWNfAN8dS>", "<https://ipfs.io/ipfs/QmUCHC7sAZTPo5Jh9ZnUH2kRJqgRRwv2qkBJbiLagNfQZJ>", "<https://ipfs.io/ipfs/QmQWdwZEyBtKgNDbGp2ANyMMSzdgmjmN41Qobv6EYxRAsM>", "<https://ipfs.io/ipfs/QmenFpWFVxZjZsprFnm7B18UzNnpufdQoUTm7cHxzgH5SQ>", "<https://ipfs.io/ipfs/QmaohA4F9SGri5XYKsQapsW2MgdRykeU5eAbCc9kyWjT73>", "<https://ipfs.io/ipfs/QmRFsk7v56LpcWgJKuWxZkZkDQytKDjzrBN6rWRt7Y5Ghn>", "<https://ipfs.io/ipfs/QmbsycPtbsn6ck6t8cQNmxtnwWj34TNvmuBptfeLpNQaDu>", "<https://ipfs.io/ipfs/QmV7h9xuZN7YJQKd8y4byU5WauKMofFwYTkUzE9og5vMBq>", "<https://ipfs.io/ipfs/QmZpx94Ptp7jemFN4bBQ8GGVsMCWYYpmKXZ1ND8gpe1Sqe>", "<https://ipfs.io/ipfs/QmVSbZHNYekrNxJT3oGh7L2Ymyrtr7LK1TdUU6Dd6Q5RxP>", "<https://ipfs.io/ipfs/Qmd7uaL9mnBwSFj1K1DBQieQLUxMxZTH7abU7ivtVmmw8N>", "<https://ipfs.io/ipfs/QmPEuX4bnBjiUNongUkfdt8e13JYxVrNfuKzpfdcR6nTK9>", "<https://ipfs.io/ipfs/QmdBRQo8MqXBSPvCnZpKwcd3oVmq51E5EF6BvEJMtEKVXq>", "<https://ipfs.io/ipfs/QmS1Yn6zmNMqECzqP8hwaT7MhmydDDvPgDmpy11VeVRnri>", "<https://ipfs.io/ipfs/QmbchH1YTVj1aL6dhDRf1L839457gv4MAfMu9Yt53wRFK2>", "<https://ipfs.io/ipfs/QmbvqrEg5K6WASN4gjcb4oH5wL46cwKpAQRpQ8HTss6JgE>", "<https://ipfs.io/ipfs/Qmee2FNaYZm7nEmZtYQfoPusBhBJU9wNvCPiD1WaUCeovR>", "<https://ipfs.io/ipfs/QmPkFL12cDgwWuz6Ai5xGmKYC3nDjFJE2M6sudeTBqNXh1>", "<https://ipfs.io/ipfs/QmUAhrviuC5UCP2ZN5cu7Xmbrm3Z7kQremUsyUnYW5EEyR>", "<https://ipfs.io/ipfs/QmQNsSjoXQ8iR5V8ZXbU7GoCrUVskFMoFSAtjAEUtpfJ3X>", "<https://ipfs.io/ipfs/QmXLKfpg9nRNQua6AYmKPGtuQ5qy5hu5dZ69AYByJpSWSz>", "<https://ipfs.io/ipfs/QmY83Y2QYLh8GmRjGLseSjAQQmxJotppKQ4xUH67vu85AD>", "<https://ipfs.io/ipfs/QmTVQKsXExwxon5DfFSfbrxZY57NfC6W9UbX6zK16jvwU7>", "<https://ipfs.io/ipfs/QmRy6cpzYLRJWJGtw13P2q7FrYYxwtbNFWqQ8ovE12xFb1>", "<https://ipfs.io/ipfs/QmNSRQnY1Y66kGneXo4fdnqVuivmv57yKXWfSfPk5h8JSw>", "<https://ipfs.io/ipfs/QmbTMt16N65iZ72y3QgdAP4kWyUPVTsmoDWk2tuxxqJpBh>", "<https://ipfs.io/ipfs/QmcvdCrT2kK4egQTok5q4LVGKtdPBF1x4FpX7RP9xq2zQa>", "<https://ipfs.io/ipfs/QmZM4qz6iEZGGMgXJ6RdpBzhLKwsGSti3S83owqcdSkgrB>", "<https://ipfs.io/ipfs/QmeRr5LbEpKjojU16G5VJEMXA8W5pCxB2bBpBBwzbTnYdk>", "<https://ipfs.io/ipfs/QmV4FJH6RtFvNaZp4eNGczsuVdpLhLdCXXirCZJcKuiSFK>", "<https://ipfs.io/ipfs/QmV92oZS1M96ExCqGkq4Gbit4KgLK2VgrorcK5UohbHVG3>", "<https://ipfs.io/ipfs/QmPTHgSPLcy87Zqy6X3uRSJ1FVAihSaQZU583trVdQYcqz>", "<https://ipfs.io/ipfs/QmX6TJ8FGok51Psx4b4ArXca1rS3jBJrTmJZyBj7iY9jcQ>", "<https://ipfs.io/ipfs/QmbnYTMBJWfzHN1wDzQQR4b4CJ9pzpfyCX85gSDjgmFuqN>", "<https://ipfs.io/ipfs/Qmf3nGuGsd5GtVdCebhKwwJ5WF4VFcJhjQmprKEkKL1Gco>", "<https://ipfs.io/ipfs/QmcV8cgQC7ZRBfdHmB8eU77LdncyAc39sdUUv6jhJwU8w8>", "<https://ipfs.io/ipfs/QmRqK5E2Ve5YaGpXuYZfTRG31drEypMmpDMTjxC7jqa4uw>", "<https://ipfs.io/ipfs/QmfV3cjosXDdueDifbVNwbQefUBNx6ad5594nZ9NkgtwN3>", "<https://ipfs.io/ipfs/Qmd61REBXVAvQybFR4Yex4KLkQRh92a8p9HkpCfvtsF9DY>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/Qmcu8hF3thcf6bcLtkjefhifg7xpboQEcSAnRsmccPmvCk>", "<https://ipfs.io/ipfs/QmWDCpotvboErZj2saME7Adkxjpbp1SHHb9ReKTinquF5u>", "<https://ipfs.io/ipfs/QmQYZSoUeCbv9stv6rQ4Wt6esrUdTu89FnqGLBBhaedB6s>", "<https://ipfs.io/ipfs/QmPQBHpc1GdYdqvhArpzctMTWxL1GVS3YZhZQWuSZt6xyr>", "<https://ipfs.io/ipfs/QmdX2QjCCttPH16FXFvrVdc5NxK8YpkkAUsvg6PXoT8Fwa>", "<https://ipfs.io/ipfs/QmYvuxuHVkfCFj1KZMyqcGhBQnLJZfSuB2X2462L4bAE8d>", "<https://ipfs.io/ipfs/QmXECjCoxpRF6TDh53My42AuRJPaki3hDebPSC8oVGwf1k>", "<https://ipfs.io/ipfs/Qmc2uYt7p9z83x741gfsdTAbhPBNtZbDGpCKyW4MeSszcJ>"]
["<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/QmaDcVCX61D14bdAmtMisE3N5yPz8TjpPf3qYkybX9zAjx>", "<https://ipfs.io/ipfs/Qmc31efSkfZHDUXKLhcE3pBt9tASW9fBDAtbDKFak96L3w>", "<https://ipfs.io/ipfs/QmZCxejKJSQhZ5HZEBCoxB7XWy6jYNfBpm9uUEuXZ5Y7yE>", "<https://ipfs.io/ipfs/QmWWAx1zkMMZYRjntAy6UfLNtkVn1uAf3VGwd7w2Y9g8oM>", "<https://ipfs.io/ipfs/QmVp7NTyZgWK6d1z5RobPaqXoYWyugEBV5ujFAUjTVdhQe>", "<https://ipfs.io/ipfs/Qmdiq5jFJ6NRSwLJxEZczK7SGnCoAZYwewsiKQoEQC5c3Y>", "<https://ipfs.io/ipfs/QmTxDUc3sCwiYD3eMdJCurSWX18s1hC4uMXkinq2tcwfof>", "<https://ipfs.io/ipfs/QmXJ7DbvQwLTPsk6KWpU8pE1v1oYNRjmCrTF3Rh2EkWBYx>", "<https://ipfs.io/ipfs/QmRj4Avai99UmwixgpqQZrvgkYGtmCk2xsPwdCzFbHM2M8>", "<https://ipfs.io/ipfs/Qme7hEGdir6CGAnZZbsVwU5VsJSRD3VST7xupJshxL1sgp>", "<https://ipfs.io/ipfs/QmTWmAuANehLzkJ4AT9u3NPUANxyomHdntRHKwtVFVughK>"]
38 changes: 23 additions & 15 deletions scripts/metadata/tokens/1.json
Original file line number Diff line number Diff line change
@@ -1,41 +1,49 @@
{
"name": "1",
"name": "Cypto-promise 1",
"description": "",
"img": "",
"attributes": [
{
"trait_type": "holder address",
"trait_type": "Holder address",
"value": "0xba9F92911def745d5B92d01b2371bc80a02B0298"
},
{
"trait_type": "debtor address",
"trait_type": "Debtor address",
"value": "0x3a5f9a151C280cC33B90EB7FAB46E6cF54704684"
},
{
"trait_type": "NFT id",
"value": "1"
},
{
"trait_type": "commission in percents",
"value": "10"
"display_type": "number",
"trait_type": "Commission in percents",
"value": 10
},
{
"trait_type": "amount",
"value": "1100"
"display_type": "number",
"trait_type": "Amount to pay",
"value": 1100
},
{
"trait_type": "date of registration",
"value": "1692248351"
"display_type": "date",
"trait_type": "Date of registration",
"value": 1692250923
},
{
"trait_type": "date of close",
"value": "1692126000"
"display_type": "date",
"trait_type": "Date of close",
"value": 1693335600
},
{
"trait_type": "date of holder consent",
"value": "0"
"display_type": "date",
"trait_type": "Date of holder consent",
"value": 0
},
{
"trait_type": "date of debtor consent",
"value": "0"
"display_type": "date",
"trait_type": "Date of debtor consent",
"value": 0
}
]
}
41 changes: 0 additions & 41 deletions scripts/metadata/tokens/2.json

This file was deleted.

8 changes: 4 additions & 4 deletions tests/test_nft_promissory.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def test_nft_promissory_deploy(promissory_nft):
assert promissory_nft.address != '0'

def test_get_promissory_token_info(holder, debtor, promissory_nft):
create_promissory(holder, debtor, 0, 1000, 1692126000)
create_promissory(holder, debtor, 0, 1000, 1693335600)
token_id = PromissoryNFT[-1].tokenCounter()
promissory_contract = get_promissory(holder, token_id)
promissory_info = list(promissory_contract.promissory())
Expand All @@ -25,18 +25,18 @@ def test_get_promissory_token_info(holder, debtor, promissory_nft):
debtorAddress = '0xa5f78F093C1Fa451eAb7D3102AdF1eC6E0b85F27'
else:
holderAddress, debtorAddress = accounts[0], accounts[1]
assert promissory_info == [holderAddress, debtorAddress, token_id, 0, 1000, chain.time() // 3600, 1692126000, 0, 0, False, False]
assert promissory_info == [holderAddress, debtorAddress, token_id, 0, 1000, chain.time() // 3600, 1693335600, 0, 0, False, False]

def test_pay_promissory(holder, debtor, promissory_nft):
create_promissory(holder, debtor, 10, 1000, 1692126000)
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)
assert exist_token == False

def test_transfer_token(holder, debtor, third_party, promissory_nft):
create_promissory(holder, debtor, 10, 1000, 1692126000)
create_promissory(holder, debtor, 10, 1000, 1693335600)
token_id = PromissoryNFT[-1].tokenCounter()
# _to - лицо, которому передаётся вексель
to = third_party if network.show_active() != 'development' else accounts[2]
Expand Down

0 comments on commit 6d98b46

Please sign in to comment.