Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add treasury pallet by echevrier · Pull Request #41 · integritee-network/integritee-node · GitHub
Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add treasury pallet by echevrier · Pull Request #41 · integritee-network/integritee-node · GitHub
Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add treasury pallet by echevrier · Pull Request #41 · integritee-network/integritee-node · GitHub
Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Add treasury pallet by echevrier · Pull Request #41 · integritee-network/integritee-node · GitHub
Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add treasury pallet by echevrier · Pull Request #41 · integritee-network/integritee-node · GitHub
Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Add treasury pallet by echevrier · Pull Request #41 · integritee-network/integritee-node · GitHub
Skip to content

Add treasury pallet - #41

Merged
brenzi merged 3 commits into
masterfrom
33/add_treasury
Sep 18, 2021
Merged

Add treasury pallet #41
brenzi merged 3 commits into
masterfrom
33/add_treasury

Conversation

@echevrier

Copy link
Copy Markdown
Contributor

To be improved as issue #33 is not clear.
Config with no burn and impossibility to approve a proposal.

echevrier added 3 commits September 14, 2021 11:15
COnfig treasury pallet and collect fees in the treasury
…accountid from pallet id, funding no hardcoded
@brenzi

Copy link
Copy Markdown
Collaborator

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

@brenzi

Copy link
Copy Markdown
Collaborator

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

@brenzi

Copy link
Copy Markdown
Collaborator

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: JAMdotTech/py-polkadot-sdk#130

@brenzi

Copy link
Copy Markdown
Collaborator

ok. treasury balance can't be below ED, which here is 1mTEER. But that's low enough to see that fees are sent to treasury. After one extrinsic, the treasury holds 1.2mTEER, what corresponds well enough with the fees paid: 271_000_000
decimals are: 12

@brenzibrenzi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we will need to change the allocations and will need to burn all fees at the beginning, according to our burning mechanism.
But I approve as this first step behaves as expected

@brenzi

brenzi commented Sep 18, 2021

Copy link
Copy Markdown
Collaborator

treasury balance test script (will commit this to repo/scripts. maybe useful for CI):

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""Created on Thu Sep 16 20:41:13 2021@author: brenzi"""fromsubstrateinterfaceimportSubstrateInterface, Keypairfromsubstrateinterface.utils.ss58importss58_encodedefget_balance(who):
returnsubstrate.query('System', 'Account', params=[who]).value['data']['free']
substrate=SubstrateInterface(
url="ws://127.0.0.1:9944",
type_registry_preset='kusama'
)
alice=Keypair.create_from_uri('//Alice')
dave=Keypair.create_from_uri('//Dave')
treasury=ss58_encode('0x'+b'modlpy/trsry'.hex() +'0000000000000000000000000000000000000000')
alicebefore=get_balance(alice.ss58_address)
treasurybefore=get_balance(treasury)
totalissuancebefore=substrate.query('Balances', 'TotalIssuance')
print('total issuance', totalissuancebefore)
amount=10*10**9#millicall=substrate.compose_call(
call_module='Balances',
call_function='transfer',
call_params={
'dest': dave.ss58_address,
'value': amount
}
)
payment_info=substrate.get_payment_info(call=call, keypair=alice)
print("Payment info: ", payment_info)
extrinsic=substrate.create_signed_extrinsic(
call=call,
keypair=alice,
era={'period': 64}
)
receipt=substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print('extrinsic sent')
totalissuanceafter=substrate.query('Balances', 'TotalIssuance')
print('difference in total issuance: ', totalissuancebefore.value-totalissuanceafter.value)
aliceafter=get_balance(alice.ss58_address)
paidfee=alicebefore-aliceafter-amountprint('fee paid : ', paidfee)
treasuryafter=get_balance(treasury)
print('treasury balance is ', treasuryafter, ' and has increased by', treasuryafter-treasurybefore)

@echevrier

Copy link
Copy Markdown
ContributorAuthor

if #33 is clear now, please update the description of the PR.
Would you now consider #33 done?
Then I'll run this node and test to review. The allocation math is a bit adventurous, but that's kind of out of scope of this task. It's just about having a treasury and fees being collected in it

For #33 I assumed:

  • the allocation math is : 5% of Nbr of endowed_account * 1 << 60
  • The treasury is configured so that:
  1. Proposals can be done, but not accepted/refused, ... (MaxApprovals = 0)
  2. SpendPeriod cannot be 0, so same value as in Polkadot: 24 days
  3. ProposalBond, ... undefined, as we don't handle Proposals.
    So we can close it, if you agree with these assumptions.

@echevrier

Copy link
Copy Markdown
ContributorAuthor

How did you check the treasury balance change? That the fee is paid to the treasury? I could verify that it isn't burned, which is a good sign. But js/apps doesn't give me all digits to verify the treasury balance.

I played with a python script but couldn't get treasury balance yet

I added in the worker client a command to request the treasury balance. I also add a script for CI. But I haven't push it, as we need to merge first the node, to make the worker compatible with this version

@echevrier

Copy link
Copy Markdown
ContributorAuthor

keep it simple: set initial treasury balance to zero and watch it rising when extrinsics are included. this can be done with js/apps manually.

for an automated approach see: polkascan/py-substrate-interface#130

I don't understand it

@echevrier
echevrier deleted the 33/add_treasury branch September 21, 2021 07:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@echevrier@brenzi