Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stevenmhunt/eth-signature-mark
Generates a visual marker which can be embedded in a PNG image and then later translated into an Ethereum signature.
https://github.com/stevenmhunt/eth-signature-mark
blockchain cryptocurrency ethereum signatures steganography
Last synced: 12 days ago
JSON representation
Generates a visual marker which can be embedded in a PNG image and then later translated into an Ethereum signature.
- Host: GitHub
- URL: https://github.com/stevenmhunt/eth-signature-mark
- Owner: stevenmhunt
- License: mit
- Created: 2022-01-04T21:11:07.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-06T03:49:46.000Z (about 3 years ago)
- Last Synced: 2024-12-22T09:20:49.803Z (about 1 month ago)
- Topics: blockchain, cryptocurrency, ethereum, signatures, steganography
- Language: JavaScript
- Homepage:
- Size: 16.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# eth-signature-mark
Generates a visual marker which can be embedded in a PNG image and then later translated into an Ethereum signature. The purpose of this library is to provide a simple way of adding an Ethereum signature to PNG files (for example, NFTs) so that identity information can be encoded directly in an image even if that image were to be downloaded.## Sample
![Sample Signature Mark](https://raw.githubusercontent.com/stevenmhunt/eth-signature-mark/main/sample.png)
Generated by the following call: `await drawSignatureMark('./sample.png', '0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a4370854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c', 0, 0, 100, 100);`
## Installation
```bash
# as a command-line tool
npm install eth-signature-mark -g# as a library
npm install eth-signature-mark --save
```## Usage
### CLI
```bash# an Ethereum signature:
SIG='0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a4370854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c'# get version
eth-signature-mark -v# create a signature mark on a new image (250x250)
eth-signature-mark --create './newImage.png' $SIG 0,0,50,50# create a signature mark on an existing image (30x30)
eth-signature-mark --create './existingImage.png' $SIG# extract a signature mark from an image
eth-signature-mark --extract './newImage.png' 0,0,50,50# extract a signature mark from an image
eth-signature-mark --extract './existingImage.png'
```### NodeJS Library
```javascript
const { drawSignatureMark, extractSignatureMark } = require('eth-signature-mark');// an Ethereum signature:
const sig = '0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a4370854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c';// write a new PNG file (new file will be 500x500 in size):
await drawSignatureMark('newImage.png' sig, 0, 0, 100, 100);)// write a signature mark on an existing file:
// defaults to 6px by 6px cells starting at position (6, 6)
await drawSignatureMark('existingImage.png', sig);// extract signature data from an existing image (also accepts x, y, width, height parameters).
const checkSig = await extractSignatureMark('existingImage.png');assert.ok(sig === checkSig);
```