Skip to content
This repository was archived by the owner on Nov 3, 2023. It is now read-only.

Commit a97f509

Browse files
committed
minter contract
1 parent b4121a4 commit a97f509

File tree

17 files changed

+1534
-194
lines changed

17 files changed

+1534
-194
lines changed

intermediate-en/session_4/dao/backend/smart_contracts/artifacts/DAO/application.json

+32-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"hints": {
3+
"create(uint64)void": {
4+
"call_config": {
5+
"no_op": "CREATE"
6+
}
7+
},
38
"add_proposal((string,string,string,byte[32]))void": {
49
"structs": {
510
"proposal": {
@@ -33,20 +38,20 @@
3338
"no_op": "CALL"
3439
}
3540
},
36-
"mint()uint64": {
41+
"mint(application)uint64": {
3742
"call_config": {
3843
"no_op": "CALL"
3944
}
4045
}
4146
},
4247
"source": {
43-
"approval": "I3ByYWdtYSB2ZXJzaW9uIDgKaW50Y2Jsb2NrIDAgMSAyIDQKYnl0ZWNibG9jayAweDc2MmQgMHg2Mzc1NzI3MjY1NmU3NDVmNzA3MjZmNzA2ZjczNjE2YzVmNjk2NCAweDc3Njk2ZTZlNjk2ZTY3NWY3MDcyNmY3MDZmNzM2MTZjIDB4NzAyZCAweAp0eG4gTnVtQXBwQXJncwppbnRjXzAgLy8gMAo9PQpibnogbWFpbl9sOAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCnB1c2hieXRlcyAweGVmYThiNDRiIC8vICJhZGRfcHJvcG9zYWwoKHN0cmluZyxzdHJpbmcsc3RyaW5nLGJ5dGVbMzJdKSl2b2lkIgo9PQpibnogbWFpbl9sNwp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCnB1c2hieXRlcyAweDMxZDVjMzAwIC8vICJ2b3RlKHVpbnQ2NCl2b2lkIgo9PQpibnogbWFpbl9sNgp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCnB1c2hieXRlcyAweDk5ZjE5YTMzIC8vICJtaW50KCl1aW50NjQiCj09CmJueiBtYWluX2w1CmVycgptYWluX2w1Ogp0eG4gT25Db21wbGV0aW9uCmludGNfMCAvLyBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludGNfMCAvLyAwCiE9CiYmCmFzc2VydApjYWxsc3ViIG1pbnRjYXN0ZXJfNgppbnRjXzEgLy8gMQpyZXR1cm4KbWFpbl9sNjoKdHhuIE9uQ29tcGxldGlvbgppbnRjXzAgLy8gTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnRjXzAgLy8gMAohPQomJgphc3NlcnQKY2FsbHN1YiB2b3RlY2FzdGVyXzUKaW50Y18xIC8vIDEKcmV0dXJuCm1haW5fbDc6CnR4biBPbkNvbXBsZXRpb24KaW50Y18wIC8vIE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50Y18wIC8vIDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgYWRkcHJvcG9zYWxjYXN0ZXJfNAppbnRjXzEgLy8gMQpyZXR1cm4KbWFpbl9sODoKdHhuIE9uQ29tcGxldGlvbgppbnRjXzAgLy8gTm9PcAo9PQpibnogbWFpbl9sMTAKZXJyCm1haW5fbDEwOgp0eG4gQXBwbGljYXRpb25JRAppbnRjXzAgLy8gMAo9PQphc3NlcnQKY2FsbHN1YiBjcmVhdGVfMAppbnRjXzEgLy8gMQpyZXR1cm4KCi8vIGNyZWF0ZQpjcmVhdGVfMDoKcHJvdG8gMCAwCmJ5dGVjXzEgLy8gImN1cnJlbnRfcHJvcG9zYWxfaWQiCmludGNfMCAvLyAwCmFwcF9nbG9iYWxfcHV0CmJ5dGVjXzIgLy8gIndpbm5pbmdfcHJvcG9zYWwiCmludGNfMCAvLyAwCmFwcF9nbG9iYWxfcHV0CnJldHN1YgoKLy8gYWRkX3Byb3Bvc2FsCmFkZHByb3Bvc2FsXzE6CnByb3RvIDEgMAppbnRjXzAgLy8gMApkdXAKYnl0ZWNfMSAvLyAiY3VycmVudF9wcm9wb3NhbF9pZCIKYXBwX2dsb2JhbF9nZXQKZnJhbWVfYnVyeSAwCmludGNfMCAvLyAwCmZyYW1lX2J1cnkgMQpieXRlY18zIC8vICJwLSIKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKYm94X2RlbApwb3AKYnl0ZWNfMyAvLyAicC0iCmZyYW1lX2RpZyAwCml0b2IKY29uY2F0CmZyYW1lX2RpZyAtMQpib3hfcHV0CmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgMAppdG9iCmNvbmNhdApib3hfZGVsCnBvcApieXRlY18wIC8vICJ2LSIKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKZnJhbWVfZGlnIDEKaXRvYgpib3hfcHV0CmJ5dGVjXzEgLy8gImN1cnJlbnRfcHJvcG9zYWxfaWQiCmJ5dGVjXzEgLy8gImN1cnJlbnRfcHJvcG9zYWxfaWQiCmFwcF9nbG9iYWxfZ2V0CmludGNfMSAvLyAxCisKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyB2b3RlCnZvdGVfMjoKcHJvdG8gMSAwCmludGNfMCAvLyAwCmR1cApieXRlY18yIC8vICJ3aW5uaW5nX3Byb3Bvc2FsIgphcHBfZ2xvYmFsX2dldApmcmFtZV9idXJ5IDEKYnl0ZWNfMCAvLyAidi0iCmZyYW1lX2RpZyAtMQppdG9iCmNvbmNhdApib3hfZ2V0CnN0b3JlIDEKc3RvcmUgMApsb2FkIDEKYXNzZXJ0CmxvYWQgMApidG9pCmludGNfMSAvLyAxCisKZnJhbWVfYnVyeSAwCmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgLTEKaXRvYgpjb25jYXQKYm94X2dldApzdG9yZSAxCnN0b3JlIDAKbG9hZCAxCmFzc2VydApsb2FkIDAKYnRvaQppbnRjXzEgLy8gMQorCmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgMQppdG9iCmNvbmNhdApib3hfZ2V0CnN0b3JlIDMKc3RvcmUgMgpsb2FkIDMKYXNzZXJ0CmxvYWQgMgpidG9pCj4KYnogdm90ZV8yX2wyCmJ5dGVjXzIgLy8gIndpbm5pbmdfcHJvcG9zYWwiCmZyYW1lX2RpZyAtMQphcHBfZ2xvYmFsX3B1dAp2b3RlXzJfbDI6CmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgLTEKaXRvYgpjb25jYXQKYm94X2RlbApwb3AKYnl0ZWNfMCAvLyAidi0iCmZyYW1lX2RpZyAtMQppdG9iCmNvbmNhdApmcmFtZV9kaWcgMAppdG9iCmJveF9wdXQKcmV0c3ViCgovLyBtaW50Cm1pbnRfMzoKcHJvdG8gMCAxCmludGNfMCAvLyAwCmR1cApieXRlYyA0IC8vICIiCmR1cG4gNApieXRlY18yIC8vICJ3aW5uaW5nX3Byb3Bvc2FsIgphcHBfZ2xvYmFsX2dldApmcmFtZV9idXJ5IDEKYnl0ZWNfMyAvLyAicC0iCmZyYW1lX2RpZyAxCml0b2IKY29uY2F0CmJveF9nZXQKc3RvcmUgNQpzdG9yZSA0CmxvYWQgNQphc3NlcnQKbG9hZCA0CmZyYW1lX2J1cnkgMgpmcmFtZV9kaWcgMgpmcmFtZV9kaWcgMgppbnRjXzIgLy8gMgpleHRyYWN0X3VpbnQxNgpmcmFtZV9kaWcgMgppbnRjXzMgLy8gNApleHRyYWN0X3VpbnQxNgpzdWJzdHJpbmczCmZyYW1lX2J1cnkgMwpmcmFtZV9kaWcgMgpmcmFtZV9kaWcgMgppbnRjXzAgLy8gMApleHRyYWN0X3VpbnQxNgpmcmFtZV9kaWcgMgppbnRjXzIgLy8gMgpleHRyYWN0X3VpbnQxNgpzdWJzdHJpbmczCmZyYW1lX2J1cnkgNApmcmFtZV9kaWcgMgpmcmFtZV9kaWcgMgppbnRjXzMgLy8gNApleHRyYWN0X3VpbnQxNgpkaWcgMQpsZW4Kc3Vic3RyaW5nMwpmcmFtZV9idXJ5IDUKZnJhbWVfZGlnIDIKZXh0cmFjdCA2IDMyCmZyYW1lX2J1cnkgNgppdHhuX2JlZ2luCnB1c2hpbnQgMyAvLyBhY2ZnCml0eG5fZmllbGQgVHlwZUVudW0KaW50Y18xIC8vIDEKaXR4bl9maWVsZCBDb25maWdBc3NldFRvdGFsCmZyYW1lX2RpZyAzCmV4dHJhY3QgMiAwCml0eG5fZmllbGQgQ29uZmlnQXNzZXRVUkwKZnJhbWVfZGlnIDQKZXh0cmFjdCAyIDAKaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKZnJhbWVfZGlnIDUKZXh0cmFjdCAyIDAKaXR4bl9maWVsZCBDb25maWdBc3NldFVuaXROYW1lCmZyYW1lX2RpZyA2Cml0eG5fZmllbGQgQ29uZmlnQXNzZXRNZXRhZGF0YUhhc2gKaW50Y18wIC8vIDAKaXR4bl9maWVsZCBGZWUKaXR4bl9zdWJtaXQKaXR4biBDcmVhdGVkQXNzZXRJRApmcmFtZV9idXJ5IDAKcmV0c3ViCgovLyBhZGRfcHJvcG9zYWxfY2FzdGVyCmFkZHByb3Bvc2FsY2FzdGVyXzQ6CnByb3RvIDAgMApieXRlYyA0IC8vICIiCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKZnJhbWVfYnVyeSAwCmZyYW1lX2RpZyAwCmNhbGxzdWIgYWRkcHJvcG9zYWxfMQpyZXRzdWIKCi8vIHZvdGVfY2FzdGVyCnZvdGVjYXN0ZXJfNToKcHJvdG8gMCAwCmludGNfMCAvLyAwCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKYnRvaQpmcmFtZV9idXJ5IDAKZnJhbWVfZGlnIDAKY2FsbHN1YiB2b3RlXzIKcmV0c3ViCgovLyBtaW50X2Nhc3RlcgptaW50Y2FzdGVyXzY6CnByb3RvIDAgMAppbnRjXzAgLy8gMApjYWxsc3ViIG1pbnRfMwpmcmFtZV9idXJ5IDAKcHVzaGJ5dGVzIDB4MTUxZjdjNzUgLy8gMHgxNTFmN2M3NQpmcmFtZV9kaWcgMAppdG9iCmNvbmNhdApsb2cKcmV0c3Vi",
48+
"approval": "I3ByYWdtYSB2ZXJzaW9uIDgKaW50Y2Jsb2NrIDAgMQpieXRlY2Jsb2NrIDB4NzYyZCAweDYzNzU3MjcyNjU2ZTc0NWY3MDcyNmY3MDZmNzM2MTZjNWY2OTY0IDB4Nzc2OTZlNmU2OTZlNjc1ZjcwNzI2ZjcwNmY3MzYxNmMgMHg2ZDY5NmU3NDY1NzI1ZjYxNzA3MDVmNjk2NCAweDcwMmQgMHgKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMApwdXNoYnl0ZXMgMHgyNDBkMmY2NyAvLyAiY3JlYXRlKHVpbnQ2NCl2b2lkIgo9PQpibnogbWFpbl9sOAp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCnB1c2hieXRlcyAweGVmYThiNDRiIC8vICJhZGRfcHJvcG9zYWwoKHN0cmluZyxzdHJpbmcsc3RyaW5nLGJ5dGVbMzJdKSl2b2lkIgo9PQpibnogbWFpbl9sNwp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCnB1c2hieXRlcyAweDMxZDVjMzAwIC8vICJ2b3RlKHVpbnQ2NCl2b2lkIgo9PQpibnogbWFpbl9sNgp0eG5hIEFwcGxpY2F0aW9uQXJncyAwCnB1c2hieXRlcyAweDk0YzYxMjg0IC8vICJtaW50KGFwcGxpY2F0aW9uKXVpbnQ2NCIKPT0KYm56IG1haW5fbDUKZXJyCm1haW5fbDU6CnR4biBPbkNvbXBsZXRpb24KaW50Y18wIC8vIE5vT3AKPT0KdHhuIEFwcGxpY2F0aW9uSUQKaW50Y18wIC8vIDAKIT0KJiYKYXNzZXJ0CmNhbGxzdWIgbWludGNhc3Rlcl83CmludGNfMSAvLyAxCnJldHVybgptYWluX2w2Ogp0eG4gT25Db21wbGV0aW9uCmludGNfMCAvLyBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludGNfMCAvLyAwCiE9CiYmCmFzc2VydApjYWxsc3ViIHZvdGVjYXN0ZXJfNgppbnRjXzEgLy8gMQpyZXR1cm4KbWFpbl9sNzoKdHhuIE9uQ29tcGxldGlvbgppbnRjXzAgLy8gTm9PcAo9PQp0eG4gQXBwbGljYXRpb25JRAppbnRjXzAgLy8gMAohPQomJgphc3NlcnQKY2FsbHN1YiBhZGRwcm9wb3NhbGNhc3Rlcl81CmludGNfMSAvLyAxCnJldHVybgptYWluX2w4Ogp0eG4gT25Db21wbGV0aW9uCmludGNfMCAvLyBOb09wCj09CnR4biBBcHBsaWNhdGlvbklECmludGNfMCAvLyAwCj09CiYmCmFzc2VydApjYWxsc3ViIGNyZWF0ZWNhc3Rlcl80CmludGNfMSAvLyAxCnJldHVybgoKLy8gY3JlYXRlCmNyZWF0ZV8wOgpwcm90byAxIDAKYnl0ZWNfMSAvLyAiY3VycmVudF9wcm9wb3NhbF9pZCIKaW50Y18wIC8vIDAKYXBwX2dsb2JhbF9wdXQKYnl0ZWNfMyAvLyAibWludGVyX2FwcF9pZCIKaW50Y18wIC8vIDAKYXBwX2dsb2JhbF9wdXQKYnl0ZWNfMiAvLyAid2lubmluZ19wcm9wb3NhbCIKaW50Y18wIC8vIDAKYXBwX2dsb2JhbF9wdXQKYnl0ZWNfMyAvLyAibWludGVyX2FwcF9pZCIKZnJhbWVfZGlnIC0xCmFwcF9nbG9iYWxfcHV0CnJldHN1YgoKLy8gYWRkX3Byb3Bvc2FsCmFkZHByb3Bvc2FsXzE6CnByb3RvIDEgMAppbnRjXzAgLy8gMApkdXAKYnl0ZWNfMSAvLyAiY3VycmVudF9wcm9wb3NhbF9pZCIKYXBwX2dsb2JhbF9nZXQKZnJhbWVfYnVyeSAwCmludGNfMCAvLyAwCmZyYW1lX2J1cnkgMQpieXRlYyA0IC8vICJwLSIKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKYm94X2RlbApwb3AKYnl0ZWMgNCAvLyAicC0iCmZyYW1lX2RpZyAwCml0b2IKY29uY2F0CmZyYW1lX2RpZyAtMQpib3hfcHV0CmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgMAppdG9iCmNvbmNhdApib3hfZGVsCnBvcApieXRlY18wIC8vICJ2LSIKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKZnJhbWVfZGlnIDEKaXRvYgpib3hfcHV0CmJ5dGVjXzEgLy8gImN1cnJlbnRfcHJvcG9zYWxfaWQiCmJ5dGVjXzEgLy8gImN1cnJlbnRfcHJvcG9zYWxfaWQiCmFwcF9nbG9iYWxfZ2V0CmludGNfMSAvLyAxCisKYXBwX2dsb2JhbF9wdXQKcmV0c3ViCgovLyB2b3RlCnZvdGVfMjoKcHJvdG8gMSAwCmludGNfMCAvLyAwCmR1cApieXRlY18yIC8vICJ3aW5uaW5nX3Byb3Bvc2FsIgphcHBfZ2xvYmFsX2dldApmcmFtZV9idXJ5IDEKYnl0ZWNfMCAvLyAidi0iCmZyYW1lX2RpZyAtMQppdG9iCmNvbmNhdApib3hfZ2V0CnN0b3JlIDEKc3RvcmUgMApsb2FkIDEKYXNzZXJ0CmxvYWQgMApidG9pCmludGNfMSAvLyAxCisKZnJhbWVfYnVyeSAwCmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgLTEKaXRvYgpjb25jYXQKYm94X2dldApzdG9yZSAxCnN0b3JlIDAKbG9hZCAxCmFzc2VydApsb2FkIDAKYnRvaQppbnRjXzEgLy8gMQorCmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgMQppdG9iCmNvbmNhdApib3hfZ2V0CnN0b3JlIDMKc3RvcmUgMgpsb2FkIDMKYXNzZXJ0CmxvYWQgMgpidG9pCj4KYnogdm90ZV8yX2wyCmJ5dGVjXzIgLy8gIndpbm5pbmdfcHJvcG9zYWwiCmZyYW1lX2RpZyAtMQphcHBfZ2xvYmFsX3B1dAp2b3RlXzJfbDI6CmJ5dGVjXzAgLy8gInYtIgpmcmFtZV9kaWcgLTEKaXRvYgpjb25jYXQKYm94X2RlbApwb3AKYnl0ZWNfMCAvLyAidi0iCmZyYW1lX2RpZyAtMQppdG9iCmNvbmNhdApmcmFtZV9kaWcgMAppdG9iCmJveF9wdXQKcmV0c3ViCgovLyBtaW50Cm1pbnRfMzoKcHJvdG8gMSAxCmludGNfMCAvLyAwCmR1cApieXRlYyA1IC8vICIiCmR1cApieXRlY18yIC8vICJ3aW5uaW5nX3Byb3Bvc2FsIgphcHBfZ2xvYmFsX2dldApmcmFtZV9idXJ5IDEKYnl0ZWMgNCAvLyAicC0iCmZyYW1lX2RpZyAxCml0b2IKY29uY2F0CmJveF9nZXQKc3RvcmUgNQpzdG9yZSA0CmxvYWQgNQphc3NlcnQKbG9hZCA0CmZyYW1lX2J1cnkgMgppdHhuX2JlZ2luCnB1c2hpbnQgNiAvLyBhcHBsCml0eG5fZmllbGQgVHlwZUVudW0KYnl0ZWNfMyAvLyAibWludGVyX2FwcF9pZCIKYXBwX2dsb2JhbF9nZXQKaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECnB1c2hieXRlcyAweGI0MTJkY2Y1IC8vICJtaW50X3Byb3Bvc2FsKChzdHJpbmcsc3RyaW5nLHN0cmluZyxieXRlWzMyXSkpdWludDY0IgppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwpmcmFtZV9kaWcgMgppdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwppdHhuX3N1Ym1pdAppdHhuIExhc3RMb2cKZXh0cmFjdCA0IDAKYnRvaQpmcmFtZV9idXJ5IDAKcmV0c3ViCgovLyBjcmVhdGVfY2FzdGVyCmNyZWF0ZWNhc3Rlcl80Ogpwcm90byAwIDAKaW50Y18wIC8vIDAKdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQpidG9pCmZyYW1lX2J1cnkgMApmcmFtZV9kaWcgMApjYWxsc3ViIGNyZWF0ZV8wCnJldHN1YgoKLy8gYWRkX3Byb3Bvc2FsX2Nhc3RlcgphZGRwcm9wb3NhbGNhc3Rlcl81Ogpwcm90byAwIDAKYnl0ZWMgNSAvLyAiIgp0eG5hIEFwcGxpY2F0aW9uQXJncyAxCmZyYW1lX2J1cnkgMApmcmFtZV9kaWcgMApjYWxsc3ViIGFkZHByb3Bvc2FsXzEKcmV0c3ViCgovLyB2b3RlX2Nhc3Rlcgp2b3RlY2FzdGVyXzY6CnByb3RvIDAgMAppbnRjXzAgLy8gMAp0eG5hIEFwcGxpY2F0aW9uQXJncyAxCmJ0b2kKZnJhbWVfYnVyeSAwCmZyYW1lX2RpZyAwCmNhbGxzdWIgdm90ZV8yCnJldHN1YgoKLy8gbWludF9jYXN0ZXIKbWludGNhc3Rlcl83Ogpwcm90byAwIDAKaW50Y18wIC8vIDAKZHVwCnR4bmEgQXBwbGljYXRpb25BcmdzIDEKaW50Y18wIC8vIDAKZ2V0Ynl0ZQpmcmFtZV9idXJ5IDEKZnJhbWVfZGlnIDEKY2FsbHN1YiBtaW50XzMKZnJhbWVfYnVyeSAwCnB1c2hieXRlcyAweDE1MWY3Yzc1IC8vIDB4MTUxZjdjNzUKZnJhbWVfZGlnIDAKaXRvYgpjb25jYXQKbG9nCnJldHN1Yg==",
4449
"clear": "I3ByYWdtYSB2ZXJzaW9uIDgKcHVzaGludCAwIC8vIDAKcmV0dXJu"
4550
},
4651
"state": {
4752
"global": {
4853
"num_byte_slices": 0,
49-
"num_uints": 2
54+
"num_uints": 3
5055
},
5156
"local": {
5257
"num_byte_slices": 0,
@@ -61,6 +66,11 @@
6166
"key": "current_proposal_id",
6267
"descr": ""
6368
},
69+
"minter_app_id": {
70+
"type": "uint64",
71+
"key": "minter_app_id",
72+
"descr": ""
73+
},
6474
"winning_proposal": {
6575
"type": "uint64",
6676
"key": "winning_proposal",
@@ -77,6 +87,18 @@
7787
"contract": {
7888
"name": "DAO",
7989
"methods": [
90+
{
91+
"name": "create",
92+
"args": [
93+
{
94+
"type": "uint64",
95+
"name": "minter_app_id"
96+
}
97+
],
98+
"returns": {
99+
"type": "void"
100+
}
101+
},
80102
{
81103
"name": "add_proposal",
82104
"args": [
@@ -103,15 +125,18 @@
103125
},
104126
{
105127
"name": "mint",
106-
"args": [],
128+
"args": [
129+
{
130+
"type": "application",
131+
"name": "minter_app_ref"
132+
}
133+
],
107134
"returns": {
108135
"type": "uint64"
109136
}
110137
}
111138
],
112139
"networks": {}
113140
},
114-
"bare_call_config": {
115-
"no_op": "CREATE"
116-
}
141+
"bare_call_config": {}
117142
}

intermediate-en/session_4/dao/backend/smart_contracts/artifacts/DAO/approval.teal

+55-69
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#pragma version 8
2-
intcblock 0 1 2 4
3-
bytecblock 0x762d 0x63757272656e745f70726f706f73616c5f6964 0x77696e6e696e675f70726f706f73616c 0x702d 0x
4-
txn NumAppArgs
5-
intc_0 // 0
2+
intcblock 0 1
3+
bytecblock 0x762d 0x63757272656e745f70726f706f73616c5f6964 0x77696e6e696e675f70726f706f73616c 0x6d696e7465725f6170705f6964 0x702d 0x
4+
txna ApplicationArgs 0
5+
pushbytes 0x240d2f67 // "create(uint64)void"
66
==
77
bnz main_l8
88
txna ApplicationArgs 0
@@ -14,7 +14,7 @@ pushbytes 0x31d5c300 // "vote(uint64)void"
1414
==
1515
bnz main_l6
1616
txna ApplicationArgs 0
17-
pushbytes 0x99f19a33 // "mint()uint64"
17+
pushbytes 0x94c61284 // "mint(application)uint64"
1818
==
1919
bnz main_l5
2020
err
@@ -27,7 +27,7 @@ intc_0 // 0
2727
!=
2828
&&
2929
assert
30-
callsub mintcaster_6
30+
callsub mintcaster_7
3131
intc_1 // 1
3232
return
3333
main_l6:
@@ -39,7 +39,7 @@ intc_0 // 0
3939
!=
4040
&&
4141
assert
42-
callsub votecaster_5
42+
callsub votecaster_6
4343
intc_1 // 1
4444
return
4545
main_l7:
@@ -51,33 +51,37 @@ intc_0 // 0
5151
!=
5252
&&
5353
assert
54-
callsub addproposalcaster_4
54+
callsub addproposalcaster_5
5555
intc_1 // 1
5656
return
5757
main_l8:
5858
txn OnCompletion
5959
intc_0 // NoOp
6060
==
61-
bnz main_l10
62-
err
63-
main_l10:
6461
txn ApplicationID
6562
intc_0 // 0
6663
==
64+
&&
6765
assert
68-
callsub create_0
66+
callsub createcaster_4
6967
intc_1 // 1
7068
return
7169

7270
// create
7371
create_0:
74-
proto 0 0
72+
proto 1 0
7573
bytec_1 // "current_proposal_id"
7674
intc_0 // 0
7775
app_global_put
76+
bytec_3 // "minter_app_id"
77+
intc_0 // 0
78+
app_global_put
7879
bytec_2 // "winning_proposal"
7980
intc_0 // 0
8081
app_global_put
82+
bytec_3 // "minter_app_id"
83+
frame_dig -1
84+
app_global_put
8185
retsub
8286

8387
// add_proposal
@@ -90,13 +94,13 @@ app_global_get
9094
frame_bury 0
9195
intc_0 // 0
9296
frame_bury 1
93-
bytec_3 // "p-"
97+
bytec 4 // "p-"
9498
frame_dig 0
9599
itob
96100
concat
97101
box_del
98102
pop
99-
bytec_3 // "p-"
103+
bytec 4 // "p-"
100104
frame_dig 0
101105
itob
102106
concat
@@ -192,15 +196,15 @@ retsub
192196

193197
// mint
194198
mint_3:
195-
proto 0 1
199+
proto 1 1
196200
intc_0 // 0
197201
dup
198-
bytec 4 // ""
199-
dupn 4
202+
bytec 5 // ""
203+
dup
200204
bytec_2 // "winning_proposal"
201205
app_global_get
202206
frame_bury 1
203-
bytec_3 // "p-"
207+
bytec 4 // "p-"
204208
frame_dig 1
205209
itob
206210
concat
@@ -211,70 +215,46 @@ load 5
211215
assert
212216
load 4
213217
frame_bury 2
214-
frame_dig 2
215-
frame_dig 2
216-
intc_2 // 2
217-
extract_uint16
218-
frame_dig 2
219-
intc_3 // 4
220-
extract_uint16
221-
substring3
222-
frame_bury 3
223-
frame_dig 2
224-
frame_dig 2
225-
intc_0 // 0
226-
extract_uint16
227-
frame_dig 2
228-
intc_2 // 2
229-
extract_uint16
230-
substring3
231-
frame_bury 4
232-
frame_dig 2
233-
frame_dig 2
234-
intc_3 // 4
235-
extract_uint16
236-
dig 1
237-
len
238-
substring3
239-
frame_bury 5
240-
frame_dig 2
241-
extract 6 32
242-
frame_bury 6
243218
itxn_begin
244-
pushint 3 // acfg
219+
pushint 6 // appl
245220
itxn_field TypeEnum
246-
intc_1 // 1
247-
itxn_field ConfigAssetTotal
248-
frame_dig 3
249-
extract 2 0
250-
itxn_field ConfigAssetURL
251-
frame_dig 4
252-
extract 2 0
253-
itxn_field ConfigAssetName
254-
frame_dig 5
255-
extract 2 0
256-
itxn_field ConfigAssetUnitName
257-
frame_dig 6
258-
itxn_field ConfigAssetMetadataHash
259-
intc_0 // 0
260-
itxn_field Fee
221+
bytec_3 // "minter_app_id"
222+
app_global_get
223+
itxn_field ApplicationID
224+
pushbytes 0xb412dcf5 // "mint_proposal((string,string,string,byte[32]))uint64"
225+
itxn_field ApplicationArgs
226+
frame_dig 2
227+
itxn_field ApplicationArgs
261228
itxn_submit
262-
itxn CreatedAssetID
229+
itxn LastLog
230+
extract 4 0
231+
btoi
232+
frame_bury 0
233+
retsub
234+
235+
// create_caster
236+
createcaster_4:
237+
proto 0 0
238+
intc_0 // 0
239+
txna ApplicationArgs 1
240+
btoi
263241
frame_bury 0
242+
frame_dig 0
243+
callsub create_0
264244
retsub
265245

266246
// add_proposal_caster
267-
addproposalcaster_4:
247+
addproposalcaster_5:
268248
proto 0 0
269-
bytec 4 // ""
249+
bytec 5 // ""
270250
txna ApplicationArgs 1
271251
frame_bury 0
272252
frame_dig 0
273253
callsub addproposal_1
274254
retsub
275255

276256
// vote_caster
277-
votecaster_5:
257+
votecaster_6:
278258
proto 0 0
279259
intc_0 // 0
280260
txna ApplicationArgs 1
@@ -285,9 +265,15 @@ callsub vote_2
285265
retsub
286266

287267
// mint_caster
288-
mintcaster_6:
268+
mintcaster_7:
289269
proto 0 0
290270
intc_0 // 0
271+
dup
272+
txna ApplicationArgs 1
273+
intc_0 // 0
274+
getbyte
275+
frame_bury 1
276+
frame_dig 1
291277
callsub mint_3
292278
frame_bury 0
293279
pushbytes 0x151f7c75 // 0x151f7c75

0 commit comments

Comments
 (0)