Skip to content

Instantly share code, notes, and snippets.

The current implementation of the set_approval_for_all method in the CEP-78 NFT standard does not behave as expected. Ideally, this method should allow for the approval of multiple operators, enabling token owners to list their tokens on multiple marketplaces. However, this is not currently possible with the CEP-78 standard, limiting it to exclusive listings.

The method only approves tokens owned at the time of the entry point call, and does not cover tokens acquired later. This is because it simply loops over all of the owner's tokens and approves them individually, making the operation very expensive in terms of gas usage. In fact, a warning in the comments next to the entry point advises developers to "DO NOT invoke this entrypoint unless absolutely necessary."

This unexpected behavior may also confuse dApp developers who are familiar with Ethereum's ERC-721 standard, potentially hurting the adoption of the Casper network.

To address these issues, we propose changing the set_approval_for_all impleme

CES as Casper ecosystem-wide standard

Events play a crucial role in the functioning and interactivity of decentralized applications (dApps) built on top of the blockchain. Events allow dApps to communicate and respond to changes in the blockchain state, making them a fundamental component of the overall blockchain ecosystem.

For example, events can be used to trigger a specific action or process when a certain condition is met, such as when an NFT token was transfered on the chain. This allows dApps to interact with the blockchain in real-time and provide users with instant feedback and updates.

Due to the absence of native events, developers of Casper dApps have resorted to workaround solutions to emulate events in deploy execution results. This involves creating distinctive WriteCLValue transforms that hold the event data, an approach commonly referred to as contract-level events.

When discussing contract-level events, the following aspects are of particular concern:

  1. Cost overhead
@ihor
ihor / casper-event-standard.md
Last active February 2, 2023 08:04
This proposal describes a Casper Event Standard that could mitigate the lack of native events until they are implemented
@ihor
ihor / Casperlabs Testnet Rust Validator Node
Last active March 4, 2022 20:05
Step by step guide describing how to set up of Casperlabs Rust Validator Node on AWS from scratch using Ubuntu Server 20.04 LTS AMI
Sources used:
- https://github.com/CasperLabs/casper-node/blob/v1.5.0/resources/production/README.md
- https://docs.google.com/document/d/1YO_WnjPt2sGJgPB1jm_hVDHYULYsjPEAtkiAiY0e3-0/edit#
- https://docs.casperlabs.io/en/latest/node-operator/index.html
- Discord
[✓] 1. Create casperlabs-validator security group that exposes the following ports to public:
- 7777 - for http access to the status endpoint: http://<IP Address>:7777/status.
- 34553 - to gossip with other nodes
@ihor
ihor / install-php71-on-amazon-linux.sh
Last active April 25, 2021 16:47
Install PHP 7.1 on Amazon Linux
sudo su
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm
yum-config-manager --enable remi-php71
wget ftp://195.220.108.108/linux/epel/6/x86_64/scl-utils-20120229-1.el6.x86_64.rpm
rpm -Uvh scl-utils-20120229-1.el6.x86_64.rpm
yum install php71 -y
@ihor
ihor / install-rabbitmq-on-amazon-linux.sh
Last active March 11, 2021 08:55
Install RabbitMQ on Amazon Linux
# Modify /etc/yum.repos.d/epel.repo. Under the section marked [epel], change enabled=0 to enabled=1.
sudo yum install erlang --enablerepo=epel
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.1/rabbitmq-server-3.1.1-1.noarch.rpm
sudo rpm -Uvh rabbitmq-server-3.1.1-1.noarch.rpm
# Enable managament plugin
sudo rabbitmq-plugins enable rabbitmq_management
@ihor
ihor / rabbitmq-init.d-macos.sh
Last active January 19, 2018 11:56
/etc/init.d/rabbitmq script for Homebrew installed RabbitMQ
#!/bin/bash
DAEMON=/usr/local/sbin/rabbitmq-server
OPTS=''
NAME=rabbitmq
DESC=rabbitmq
test -x $DAEMON || exit 0
set -e
@ihor
ihor / supervisor-init.d-macos.sh
Last active January 19, 2018 11:54
/etc/init.d/supervisor script for Homebrew installed Supervisor
#!/bin/bash
DAEMON=/usr/local/bin/supervisord
OPTS='-c /usr/local/etc/supervisor/supervisord.conf'
NAME=supervisor
DESC=supervisor
test -x $DAEMON || exit 0
set -e
@ihor
ihor / mongodb-init.d-macos.sh
Last active January 19, 2018 11:56
/etc/init.d/mongodb script for Homebrew installed MongoDB
#!/bin/bash
DAEMON=/usr/local/bin/mongod
OPTS='run --config /usr/local/etc/mongo/mongod.conf'
NAME=mongodb
DESC=mongodb
test -x $DAEMON || exit 0
set -e
@ihor
ihor / redis-init.d-macos.sh
Last active January 19, 2018 11:56
/etc/init.d/redis script for Homebrew installed REdis
#!/bin/bash
DAEMON=/usr/local/bin/redis-server
OPTS=/usr/local/etc/redis/redis.conf
NAME=redis
DESC=redis
test -x $DAEMON || exit 0
set -e