Skip to content

Instantly share code, notes, and snippets.

View KolevDarko's full-sized avatar
🏠
Working from home

Darko Kolev KolevDarko

🏠
Working from home
View GitHub Profile
@KolevDarko
KolevDarko / governor-propose.sol
Created December 15, 2022 05:18
Governor propose
function propose(
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas,
string memory description
) public virtual override returns (uint256) {
require(
getVotes(_msgSender(), block.number - 1) >= proposalThreshold(),
"Governor: proposer votes below proposal threshold"
);
function payoutSubscription(uint256 subscriptionId) public {
Subscription memory sub = subscriptions[subscriptionId];
require(sub.active, 'subscription inactive');
require((block.timestamp - sub.lastPayout) >= sub.payoutPeriod, 'Too soon');
subscriptions[subscriptionId].lastPayout = block.timestamp;
require(IERC20(sub.token).transferFrom(sub.payer, sub.receiver, sub.amount), 'transfer from failed');
emit Payout(subscriptionId, sub.amount, sub.token);
}
modifier onlyCreator(uint256 subscriptionId) {
require(msg.sender == subscriptions[subscriptionId].payer, 'not allowed');
_;
}
function cancelSubscription(uint256 subscriptionId) onlyCreator(subscriptionId) public {
//delete subscriptions[subscriptionCounter];
subscriptions[subscriptionCounter].active = false;
emit SubscriptionCanceled(subscriptionId);
}
event SubscriptionCreated(address indexed from, address indexed to, uint256 subscriptionId, Subscription subscription);
event SubscriptionCanceled(uint256 indexed subscriptionId);
event Payout(uint256 indexed subscriptionId, uint256 amount, address token);
function createSubscription(address receiver, uint256 amount, uint256 payoutPeriod, address token) external {
Subscription memory newSub = Subscription(
msg.sender,
receiver,
amount,
token,
@KolevDarko
KolevDarko / sub-mgr.sol
Last active August 17, 2022 20:53
Subscription Mgr 1
contract SubscriptionManager {
struct Subscription {
address payer;
address receiver;
uint256 amount;
address token;
uint256 payoutPeriod;
uint256 lastPayout;
bool active;
@KolevDarko
KolevDarko / hello-solidity.sol
Created August 2, 2022 08:46
Solidity Hello World
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
class GeneratorController:
def __init__(self, base_dir, img_dir, meta_dir, weights_map, traits_order,
percent_appearance=None, matching_traits=None):
self.base_dir = base_dir
self.img_dir = img_dir
self.meta_dir = meta_dir
self.weights_map = weights_map
self.traits_order = traits_order
self.percent_appearance = percent_appearance or {}
@KolevDarko
KolevDarko / nft-trait-gen.py
Created March 14, 2022 15:18
Generate unique NFT images by combination of traits
def combine_all():
prin("darko")
@KolevDarko
KolevDarko / dogecoin_price.js
Last active February 23, 2022 18:31
Get Dogecoin price with JavaScript
// npm i bitcoinaverage
const ba = require('bitcoinaverage');
var publicKey = 'ZGUyZTQ3NTJiNDQ5NDkzM2I4YTRjNjE2YTY1Y2Y0ZjE';
var restClient = ba.restfulClient(publicKey);
restClient.getTickerDataPerSymbol('crypto', 'DOGEUSD', function(response) {
console.log(response);
}, function(error){
console.log(error);
@KolevDarko
KolevDarko / get_dogecoin_price.py
Created July 26, 2021 13:12
Get Dogecoin price
import requests
BA_API_KEY = 'your api key here'
def get_dogecoin_price():
price_url = 'https://apiv2.bitcoinaverage.com/indices/crypto/ticker/DOGEUSD'
response = requests.get(price_url, headers={'x-ba-key': BA_API_KEY})
return response.json()
result = get_dogecoin_price()