cxkoda

cxkoda

Astroparticle-Physics PhD Student at the University of Innsbruck | working on relativistic CFD | mainly c++, python, go see also gitlab.com/cxkoda

Member Since 12 years ago

University of Innsbruck, Innsbruck, Austria

Experience Points
9
follower
Lessons Completed
7
follow
Lessons Completed
54
stars
Best Reply Awards
37
repos

558 contributions in the last year

Pinned
Activity
Jan
22
1 day ago
Activity icon
issue

cxkoda issue comment t-vanasseldonk/t-vanasseldonk.github.io

cxkoda
cxkoda

import assert {type: "json"} causes error in Safari & Firefox

main.js:1: import contractData from '/contracts/Manifest.json' assert { type: "json" };

This line causes an error in Safari & Firefox, causing the rest of the JS file not to load

cxkoda
cxkoda

I'll take a look later tonight :)On 22 Jan 2022 14:51, David Huber ***@wrote:Oh sorry, I didn't really test it properly yesterday evening. But that's something that should be resolved quite easily.On 22 Jan 2022 13:08, t-vanasseldonk ***@wrote: main.js:1: import contractData from '/contracts/Manifest.json' assert { type: "json" }; This line causes an error in Safari & Firefox, causing the rest of the JS file not to load

—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you are subscribed to this thread.Message ID: @.***>

Activity icon
issue

cxkoda issue comment t-vanasseldonk/t-vanasseldonk.github.io

cxkoda
cxkoda

import assert {type: "json"} causes error in Safari & Firefox

main.js:1: import contractData from '/contracts/Manifest.json' assert { type: "json" };

This line causes an error in Safari & Firefox, causing the rest of the JS file not to load

cxkoda
cxkoda

Oh sorry, I didn't really test it properly yesterday evening. But that's something that should be resolved quite easily.On 22 Jan 2022 13:08, t-vanasseldonk ***@wrote: main.js:1: import contractData from '/contracts/Manifest.json' assert { type: "json" }; This line causes an error in Safari & Firefox, causing the rest of the JS file not to load

—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you are subscribed to this thread.Message ID: @.***>

push

cxkoda push t-vanasseldonk/t-vanasseldonk.github.io

cxkoda
cxkoda

Implement connection to Metamask, and minting from a testing contract deployed on Rinkeby.

commit sha: 00711ea953f1a03c7811e721456c29907efa5384

push time in 1 day ago
Jan
15
1 week ago
started
started time in 1 week ago
Jan
14
1 week ago
Activity icon
issue

cxkoda issue comment divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

Done, fixed the remaining things. Thanks for the review and the many useful tips!

open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

Fixed it. Yes, since we will mostly deal with uint256 anyways it might make sense to rely on this package instead of math/big for added type safety. Is there maybe another package that also defines other types such as uint128 etc.?

pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

You are totally right about overexposing. I made the random nonce internal now. Also, I agree on the rename.

pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
push

cxkoda push cxkoda/ethier

cxkoda
cxkoda

Unexpose appendRandomNonce

cxkoda
cxkoda

Rename function ToEthPersonalSignedMessage -> WithPersonalMessagePrefix

cxkoda
cxkoda

Add a missing error check in PersonalSignWithNonce

commit sha: f79fc952ddaae09fe96e03c572ff9a3becea7cac

push time in 1 week ago
Jan
13
1 week ago
push

cxkoda push cxkoda/ethier

cxkoda
cxkoda

Minor refactoring of the VRF helper contracts (#23)

  • Minor refactoring of the VRF helper contracts

  • Increment the version number

  • Revert naming for the LINK withdraw method

cxkoda
cxkoda

PaymentSplitterDeployer for EIP-1167 PaymentSplitter deployments (#24)

  • PaymentSplitterDeployer for cheap PaymentSplitter deployments with minimal contract proxies.

Deployment of an OpenZeppelin PaymentSplitter costs at least 1.3M gas. This commit introduces a slightly modified version, ProxyPaymentSplitter, derived from the original PaymentSplitter, with the constructor changed to an init function——this makes it amenable to DELEGATECALL usage and the EIP-1167 minimal contract proxy.

The PaymentSplitterDeployer is intended for single deployment on each EVM-compatible chain. It deploys a primary instance of the ProxyPaymentSplitter and exposes deploy() and deployDeterministic() functions for deploying proxies to the primary instance. The deployer immediately calls the init() function so as to mimic standard PaymentSplitter deployment.

As the ProxyPaymentSplitter shares an interface with PaymentSplitter (other than the constructor and init functions) it can be used wherever a PaymentSplitter is expected, even in already- deployed contracts.

An example deployment shows savings of ~0.130Ξ per deployment at a gas price of 100 gwei, which is approximately $450 saved per deployment at an ETH price of $3500. Both of these values are reasonable in today's ETH mainnet environment.

The SimulatedBackend is also updated to produce deterministic addresses so sas to not break the gas-saving testable example.

  • EIP-1167 minimal proxy PaymentSplitter: use @openzeppelin/contracts-upgradeable base.

The Solidity code is also moved out of ./contracts and into ./factories to signal that it isn't expected to be used directly.

cxkoda
cxkoda

Update PaymentSplitterFactory documentation: s/use/import/ to clarify that the code need not be imported by new projects, but may be used when deployed.

cxkoda
cxkoda

Chain-agnostic helper library for deploying PaymentSplitter minimal proxy contracts via the PaymentSplitterFactory. Pending addresses for all chains once deployed, but tested against SimulatedBackend chain ID 1337.

commit sha: c1ce4574c412316890525353ee6196cbc7685b9e

push time in 1 week ago
Jan
8
2 weeks ago
Activity icon
issue

cxkoda issue comment divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

Thanks for the review! Yes, I was also quite a fan of keeping the disabled options explicit. I think this way it's more to reader what's happening under hood.

I realized most of the comments, with the exception regarding exposed functions and the default for compact signature - see in the conversations above.

Jan
7
2 weeks ago
push

cxkoda push cxkoda/ethier

cxkoda
cxkoda

Minor refactoring on eth.Signer functions based on the code review

commit sha: d6a02abf2df1a0a55cbcf0a2223f68cda49ff49f

push time in 2 weeks ago
close pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

PaymentSplitterDeployer for EIP-1167 PaymentSplitter deployments

Deployment of an OpenZeppelin PaymentSplitter costs at least 1.3M gas. This commit introduces a slightly modified version, ProxyPaymentSplitter, derived from the original PaymentSplitter, with the constructor changed to an init function——this makes it amenable to DELEGATECALL usage and the EIP-1167 minimal contract proxy.

The PaymentSplitterDeployer is intended for single deployment on each EVM-compatible chain. It deploys a primary instance of the ProxyPaymentSplitter and exposes deploy() and deployDeterministic() functions for deploying proxies to the primary instance. The deployer immediately calls the init() function so as to mimic standard PaymentSplitter deployment.

As the ProxyPaymentSplitter shares an interface with PaymentSplitter (other than the constructor and init functions) it can be used wherever a PaymentSplitter is expected, even in already- deployed contracts.

An example deployment shows savings of ~0.130Ξ per deployment at a gas price of 100 gwei, which is approximately $450 saved per deployment at an ETH price of $3500. Both of these values are reasonable in today's ETH mainnet environment.

The SimulatedBackend is also updated to produce deterministic addresses so sas to not break the gas-saving testable example.

cxkoda
cxkoda

I think that's a good solution.

pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

PaymentSplitterDeployer for EIP-1167 PaymentSplitter deployments

Deployment of an OpenZeppelin PaymentSplitter costs at least 1.3M gas. This commit introduces a slightly modified version, ProxyPaymentSplitter, derived from the original PaymentSplitter, with the constructor changed to an init function——this makes it amenable to DELEGATECALL usage and the EIP-1167 minimal contract proxy.

The PaymentSplitterDeployer is intended for single deployment on each EVM-compatible chain. It deploys a primary instance of the ProxyPaymentSplitter and exposes deploy() and deployDeterministic() functions for deploying proxies to the primary instance. The deployer immediately calls the init() function so as to mimic standard PaymentSplitter deployment.

As the ProxyPaymentSplitter shares an interface with PaymentSplitter (other than the constructor and init functions) it can be used wherever a PaymentSplitter is expected, even in already- deployed contracts.

An example deployment shows savings of ~0.130Ξ per deployment at a gas price of 100 gwei, which is approximately $450 saved per deployment at an ETH price of $3500. Both of these values are reasonable in today's ETH mainnet environment.

The SimulatedBackend is also updated to produce deterministic addresses so sas to not break the gas-saving testable example.

push

cxkoda push divergencetech/ethier

cxkoda
cxkoda

PaymentSplitterDeployer for EIP-1167 PaymentSplitter deployments (#24)

  • PaymentSplitterDeployer for cheap PaymentSplitter deployments with minimal contract proxies.

Deployment of an OpenZeppelin PaymentSplitter costs at least 1.3M gas. This commit introduces a slightly modified version, ProxyPaymentSplitter, derived from the original PaymentSplitter, with the constructor changed to an init function——this makes it amenable to DELEGATECALL usage and the EIP-1167 minimal contract proxy.

The PaymentSplitterDeployer is intended for single deployment on each EVM-compatible chain. It deploys a primary instance of the ProxyPaymentSplitter and exposes deploy() and deployDeterministic() functions for deploying proxies to the primary instance. The deployer immediately calls the init() function so as to mimic standard PaymentSplitter deployment.

As the ProxyPaymentSplitter shares an interface with PaymentSplitter (other than the constructor and init functions) it can be used wherever a PaymentSplitter is expected, even in already- deployed contracts.

An example deployment shows savings of ~0.130Ξ per deployment at a gas price of 100 gwei, which is approximately $450 saved per deployment at an ETH price of $3500. Both of these values are reasonable in today's ETH mainnet environment.

The SimulatedBackend is also updated to produce deterministic addresses so sas to not break the gas-saving testable example.

  • EIP-1167 minimal proxy PaymentSplitter: use @openzeppelin/contracts-upgradeable base.

The Solidity code is also moved out of ./contracts and into ./factories to signal that it isn't expected to be used directly.

commit sha: 5cf9104a478138e697bea0b47258b430431f4dd4

push time in 2 weeks ago
pull request

cxkoda pull request divergencetech/ethier

cxkoda
cxkoda

PaymentSplitterDeployer for EIP-1167 PaymentSplitter deployments

Deployment of an OpenZeppelin PaymentSplitter costs at least 1.3M gas. This commit introduces a slightly modified version, ProxyPaymentSplitter, derived from the original PaymentSplitter, with the constructor changed to an init function——this makes it amenable to DELEGATECALL usage and the EIP-1167 minimal contract proxy.

The PaymentSplitterDeployer is intended for single deployment on each EVM-compatible chain. It deploys a primary instance of the ProxyPaymentSplitter and exposes deploy() and deployDeterministic() functions for deploying proxies to the primary instance. The deployer immediately calls the init() function so as to mimic standard PaymentSplitter deployment.

As the ProxyPaymentSplitter shares an interface with PaymentSplitter (other than the constructor and init functions) it can be used wherever a PaymentSplitter is expected, even in already- deployed contracts.

An example deployment shows savings of ~0.130Ξ per deployment at a gas price of 100 gwei, which is approximately $450 saved per deployment at an ETH price of $3500. Both of these values are reasonable in today's ETH mainnet environment.

The SimulatedBackend is also updated to produce deterministic addresses so sas to not break the gas-saving testable example.

pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

PaymentSplitterDeployer for EIP-1167 PaymentSplitter deployments

Deployment of an OpenZeppelin PaymentSplitter costs at least 1.3M gas. This commit introduces a slightly modified version, ProxyPaymentSplitter, derived from the original PaymentSplitter, with the constructor changed to an init function——this makes it amenable to DELEGATECALL usage and the EIP-1167 minimal contract proxy.

The PaymentSplitterDeployer is intended for single deployment on each EVM-compatible chain. It deploys a primary instance of the ProxyPaymentSplitter and exposes deploy() and deployDeterministic() functions for deploying proxies to the primary instance. The deployer immediately calls the init() function so as to mimic standard PaymentSplitter deployment.

As the ProxyPaymentSplitter shares an interface with PaymentSplitter (other than the constructor and init functions) it can be used wherever a PaymentSplitter is expected, even in already- deployed contracts.

An example deployment shows savings of ~0.130Ξ per deployment at a gas price of 100 gwei, which is approximately $450 saved per deployment at an ETH price of $3500. Both of these values are reasonable in today's ETH mainnet environment.

The SimulatedBackend is also updated to produce deterministic addresses so sas to not break the gas-saving testable example.

open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

ohhh, I'm so sorry! I remember changing this last minute for a reason that I can't remember. brainfart.

pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

I was not entirely sure about that either. I opted for compact: false in the case of raw signatures, because people might expect to get a standard ECDSA signature.

That being sad, I could also get fully behind the idea of saying that we only use compact signatures in ethier.

pull request

cxkoda merge to divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
open pull request

cxkoda wants to merge divergencetech/ethier

cxkoda
cxkoda

EIP-191 conform personal signed messages

Motivation

Following the discussion in #3. Switching to EIP-191 confrom messages in SignatureChecker.sol will make it more compatible with other libraries such as ethers.js (https://docs.ethers.io/v5/api/signer/#Signer-signMessage).

Implementation Summary

  • Add separate EIP-191 conform signing routines to eth.Signer()
  • Switch to EIP-191 conform messages in SignatureChecker.sol
cxkoda
cxkoda

I opted to expose these functions because I thought they might come in handy if there's a special task at hand for which we did not provide wrappers yet. So that people can access the building blocks and assemble them to their own needs. But maybe I overestimate this usecase.

Agree on the rename. The only thing that I dislike about eth.PersonalSignedMessage is that it does not start with a verb. Maybe eth.AddPersonalMessagePrefix?

Previous