mirror of
https://github.com/grassrootseconomics/custodial-registration-proxy.git
synced 2024-11-21 08:36:47 +01:00
feat: remove voucher mints
This commit is contained in:
parent
c030094897
commit
1a2a1f4232
File diff suppressed because one or more lines are too long
@ -1,158 +1,9 @@
|
||||
[
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_ethFaucetAddress",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_custodialAccountIndexAddress",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_trainingVoucherAddress",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_systemAccount",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "nonpayable",
|
||||
"type": "constructor"
|
||||
},
|
||||
{
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "subject",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "NewRegistration",
|
||||
"type": "event"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "CustodialAccountIndex",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "contract ICustodialAccountIndex",
|
||||
"name": "",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "EthFaucet",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "contract IEthFaucet",
|
||||
"name": "",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "TrainingVoucher",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "contract IDemurrageTokenSingleNocap",
|
||||
"name": "",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "owner",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_subject",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "register",
|
||||
"outputs": [],
|
||||
"stateMutability": "nonpayable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_newOwner",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "setNewOwner",
|
||||
"outputs": [],
|
||||
"stateMutability": "nonpayable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "_newSystemAccount",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "setNewSystemAccount",
|
||||
"outputs": [],
|
||||
"stateMutability": "nonpayable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "systemAccount",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "trainingVoucerGiftAmount",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
}
|
||||
]
|
||||
[{"inputs":[{"internalType":"address","name":"_ethFaucetAddress","type":"address"},{"internalType":"address","name":"_custodialAccountIndexAddress","type":"address"},{"internalType":"address","name":"_systemAccount","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"subject","type":"address"}],"name":"NewRegistration","type":"event"},{"inputs":[],"name":"CustodialAccountIndex","outputs":[{"internalType":"contract ICustodialAccountIndex","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EthFaucet","outputs":[{"internalType":"contract IEthFaucet","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"setNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSystemAccount","type":"address"}],"name":"setNewSystemAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"systemAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
|
||||
|
||||
======= CustodialRegistrationProxy.sol:ICustodialAccountIndex =======
|
||||
Contract JSON ABI
|
||||
[{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
|
||||
|
||||
======= CustodialRegistrationProxy.sol:IEthFaucet =======
|
||||
Contract JSON ABI
|
||||
[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"giveTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
|
||||
|
@ -0,0 +1,9 @@
|
||||
{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_ethFaucetAddress","type":"address"},{"internalType":"address","name":"_custodialAccountIndexAddress","type":"address"},{"internalType":"address","name":"_systemAccount","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"subject","type":"address"}],"name":"NewRegistration","type":"event"},{"inputs":[],"name":"CustodialAccountIndex","outputs":[{"internalType":"contract ICustodialAccountIndex","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EthFaucet","outputs":[{"internalType":"contract IEthFaucet","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"setNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newSystemAccount","type":"address"}],"name":"setNewSystemAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"systemAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"CustodialRegistrationProxy.sol":"CustodialRegistrationProxy"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"CustodialRegistrationProxy.sol":{"keccak256":"0xacb61043b4295ad2d8fc280cb2550fce2f5206e5144f96ee90f1be77c1a537bf","license":"AGPL-3.0-or-later","urls":["bzz-raw://169e16afeb5824560c80949f77f8d08c802e26591797c6c3d1d2fb11b1fe7ebb","dweb:/ipfs/QmTFTUAsuuqxWnJJjxaDzFhXy3wGuBVyAuPjSgcN497hyy"]}},"version":1}
|
||||
|
||||
======= CustodialRegistrationProxy.sol:ICustodialAccountIndex =======
|
||||
Metadata:
|
||||
{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"CustodialRegistrationProxy.sol":"ICustodialAccountIndex"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"CustodialRegistrationProxy.sol":{"keccak256":"0xacb61043b4295ad2d8fc280cb2550fce2f5206e5144f96ee90f1be77c1a537bf","license":"AGPL-3.0-or-later","urls":["bzz-raw://169e16afeb5824560c80949f77f8d08c802e26591797c6c3d1d2fb11b1fe7ebb","dweb:/ipfs/QmTFTUAsuuqxWnJJjxaDzFhXy3wGuBVyAuPjSgcN497hyy"]}},"version":1}
|
||||
|
||||
======= CustodialRegistrationProxy.sol:IEthFaucet =======
|
||||
Metadata:
|
||||
{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"giveTo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"CustodialRegistrationProxy.sol":"IEthFaucet"},"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"CustodialRegistrationProxy.sol":{"keccak256":"0xacb61043b4295ad2d8fc280cb2550fce2f5206e5144f96ee90f1be77c1a537bf","license":"AGPL-3.0-or-later","urls":["bzz-raw://169e16afeb5824560c80949f77f8d08c802e26591797c6c3d1d2fb11b1fe7ebb","dweb:/ipfs/QmTFTUAsuuqxWnJJjxaDzFhXy3wGuBVyAuPjSgcN497hyy"]}},"version":1}
|
@ -1,26 +1,20 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
pragma solidity >= 0.8.19;
|
||||
pragma solidity >=0.8.19;
|
||||
|
||||
interface IEthFaucet {
|
||||
function giveTo(address _recipient) external returns(uint256);
|
||||
function giveTo(address _recipient) external returns (uint256);
|
||||
}
|
||||
|
||||
interface ICustodialAccountIndex {
|
||||
function add(address _account) external returns (bool);
|
||||
}
|
||||
|
||||
interface IDemurrageTokenSingleNocap {
|
||||
function mintTo(address _beneficiary, uint256 _amount) external returns (bool);
|
||||
}
|
||||
|
||||
contract CustodialRegistrationProxy {
|
||||
address public owner;
|
||||
address public systemAccount;
|
||||
uint256 public constant trainingVoucerGiftAmount = 5000000;
|
||||
|
||||
IEthFaucet public EthFaucet;
|
||||
ICustodialAccountIndex public CustodialAccountIndex;
|
||||
IDemurrageTokenSingleNocap public TrainingVoucher;
|
||||
|
||||
event NewRegistration(address indexed subject);
|
||||
|
||||
@ -34,36 +28,31 @@ contract CustodialRegistrationProxy {
|
||||
_;
|
||||
}
|
||||
|
||||
constructor(address _ethFaucetAddress, address _custodialAccountIndexAddress, address _trainingVoucherAddress, address _systemAccount) {
|
||||
constructor(
|
||||
address _ethFaucetAddress,
|
||||
address _custodialAccountIndexAddress,
|
||||
address _systemAccount
|
||||
) {
|
||||
owner = msg.sender;
|
||||
systemAccount = _systemAccount;
|
||||
|
||||
EthFaucet = IEthFaucet(_ethFaucetAddress);
|
||||
CustodialAccountIndex = ICustodialAccountIndex(_custodialAccountIndexAddress);
|
||||
TrainingVoucher = IDemurrageTokenSingleNocap(_trainingVoucherAddress);
|
||||
CustodialAccountIndex = ICustodialAccountIndex(
|
||||
_custodialAccountIndexAddress
|
||||
);
|
||||
}
|
||||
|
||||
function setNewOwner(address _newOwner)
|
||||
public
|
||||
ownerOnly
|
||||
{
|
||||
function setNewOwner(address _newOwner) public ownerOnly {
|
||||
owner = _newOwner;
|
||||
}
|
||||
|
||||
function setNewSystemAccount(address _newSystemAccount)
|
||||
public
|
||||
ownerOnly
|
||||
{
|
||||
function setNewSystemAccount(address _newSystemAccount) public ownerOnly {
|
||||
systemAccount = _newSystemAccount;
|
||||
}
|
||||
|
||||
function register(address _subject)
|
||||
public
|
||||
systemAccountOnly
|
||||
{
|
||||
function register(address _subject) public systemAccountOnly {
|
||||
CustodialAccountIndex.add(_subject);
|
||||
EthFaucet.giveTo(_subject);
|
||||
TrainingVoucher.mintTo(_subject, trainingVoucerGiftAmount);
|
||||
emit NewRegistration(_subject);
|
||||
}
|
||||
}
|
13
solidity/Makefile
Normal file
13
solidity/Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
SOLC = solc
|
||||
|
||||
all:
|
||||
$(SOLC) CustodialRegistrationProxy.sol --abi --evm-version istanbul | awk 'NR>3' > CustodialRegistrationProxy.json
|
||||
$(SOLC) CustodialRegistrationProxy.sol --bin --evm-version istanbul | awk 'NR>3' > CustodialRegistrationProxy.bin
|
||||
$(SOLC) CustodialRegistrationProxy.sol --metadata --evm-version istanbul | awk 'NR>3' > CustodialRegistrationProxy.metadata.json
|
||||
truncate -s -1 CustodialRegistrationProxy.bin
|
||||
|
||||
install: all
|
||||
cp -v *.json ../custodial_registration_proxy/data/
|
||||
cp -v *.bin ../custodial_registration_proxy/data/
|
||||
|
||||
.PHONY: install
|
Loading…
Reference in New Issue
Block a user