Skip to content

Commit 6832af4

Browse files
committed
v4.6.1: fix evm package
1 parent 46cd9a1 commit 6832af4

File tree

5 files changed

+103
-70
lines changed

5 files changed

+103
-70
lines changed

dist/esm/index.evm.js

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ supported.solana = [];
99

1010
const _jsxFileName = "/Users/sebastian/Work/DePay/react-token-image/src/index.evm.js";
1111
const tokenURIAPI = [{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}];
12+
const uriAPI = [{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}];
1213
const UNKNOWN_IMAGE = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI4My41IDI4My41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxjaXJjbGUgZmlsbD0iI0YwRUZFRiIgY3g9IjE0MS43IiBjeT0iMTQxLjciIHI9IjE0MS43Ii8+CjxnPgoJPHBhdGggZmlsbD0iI0FCQUJBQiIgZD0iTTEyNywxNzUuMXYtNC40YzAtOC40LDEuMS0xNS4zLDMuNC0yMC43YzIuMy01LjQsNS4xLTEwLDguNC0xMy44YzMuMy0zLjcsNi42LTcsMTAuMS05LjdzNi4zLTUuNiw4LjYtOC41CgkJYzIuMy0yLjksMy40LTYuNCwzLjQtMTAuNWMwLTUtMS4xLTguNy0zLjMtMTEuMWMtMi4yLTIuNC01LTQtOC40LTQuOGMtMy40LTAuOC02LjktMS4zLTEwLjUtMS4zYy01LjgsMC0xMS44LDEtMTcuOSwyLjkKCQljLTYuMSwxLjktMTEuNSw0LjctMTYsOC40Vjc0YzIuMy0xLjcsNS40LTMuMyw5LjQtNC45YzQtMS42LDguNC0yLjksMTMuNC00YzUtMS4xLDEwLjEtMS42LDE1LjUtMS42YzguMSwwLDE1LjEsMS4xLDIxLjEsMy40CgkJYzYsMi4zLDEwLjgsNS41LDE0LjcsOS41YzMuOCw0LDYuNyw4LjcsOC42LDE0LjFjMS45LDUuMywyLjksMTEuMSwyLjksMTcuMmMwLDYuNi0xLjEsMTItMy40LDE2LjNjLTIuMyw0LjMtNS4xLDgtOC41LDExLjIKCQljLTMuNCwzLjItNi44LDYuNC0xMC4yLDkuNWMtMy40LDMuMS02LjMsNi44LTguNiwxMWMtMi4zLDQuMi0zLjQsOS41LTMuNCwxNS45djMuNEgxMjd6IE0xMjUuMiwyMTguMnYtMjcuN2gzM3YyNy43SDEyNS4yeiIvPgo8L2c+Cjwvc3ZnPgo=';
1314

1415
let TokenImage = function(props){
@@ -18,6 +19,7 @@ let TokenImage = function(props){
1819

1920
const blockchain = props.blockchain.toLowerCase();
2021
const address = props.address;
22+
const id = props.id;
2123

2224
useEffect(()=>{
2325
if(CONSTANTS[blockchain].NATIVE.toLowerCase() == address.toLowerCase()) {
@@ -55,34 +57,43 @@ let TokenImage = function(props){
5557
setSrc(UNKNOWN_IMAGE);
5658
};
5759

60+
const uriToImage = (tokenURI)=>{
61+
if(tokenURI.match(/^ipfs/)) {
62+
tokenURI = `https://ipfs.io/ipfs/${tokenURI.split('://')[1]}`;
63+
}
64+
fetch(tokenURI).then((response) => {
65+
if (response.ok) { return response.json() }
66+
setUnknown();
67+
})
68+
.then((responseJson) => {
69+
if(responseJson) {
70+
let image = responseJson.image;
71+
if(image){
72+
if(image.match(/^ipfs/)) {
73+
image = `https://ipfs.io/ipfs/${image.split('://')[1]}`;
74+
}
75+
setSource('meta');
76+
setSrc(image);
77+
} else {
78+
setUnknown();
79+
}
80+
}
81+
}).catch(setUnknown);
82+
};
83+
5884
const handleLoadError = (error)=> {
5985
if(source == 'repository') {
6086
setSource('depay');
6187
setSrc(`https://integrate.depay.com/tokens/${blockchain}/${address}/image`);
6288
} else if (source == 'depay' && supported.evm.includes(blockchain)) {
63-
request({ blockchain, address, api: tokenURIAPI, method: 'tokenURI', params: [1] }).then(async(tokenURI)=>{
64-
if(tokenURI.match(/^ipfs/)) {
65-
tokenURI = `https://ipfs.io/ipfs/${tokenURI.split('://')[1]}`;
66-
}
67-
fetch(tokenURI).then((response) => {
68-
if (response.ok) { return response.json() }
69-
setUnknown();
70-
})
71-
.then((responseJson) => {
72-
if(responseJson) {
73-
let image = responseJson.image;
74-
if(image){
75-
if(image.match(/^ipfs/)) {
76-
image = `https://ipfs.io/ipfs/${image.split('://')[1]}`;
77-
}
78-
setSource('meta');
79-
setSrc(image);
80-
} else {
81-
setUnknown();
82-
}
83-
}
89+
if(id) {
90+
request({ blockchain, address, api: uriAPI, method: 'uri', params: [id] }).then((uri)=>{
91+
uri = uri.match('0x{id}') ? uri.replace('0x{id}', id) : uri;
92+
uriToImage(uri);
8493
}).catch(setUnknown);
85-
}).catch(setUnknown);
94+
} else {
95+
request({ blockchain, address, api: tokenURIAPI, method: 'tokenURI', params: [1] }).then(uriToImage).catch(setUnknown);
96+
}
8697
} else {
8798
setUnknown();
8899
}
@@ -94,7 +105,7 @@ let TokenImage = function(props){
94105
React.createElement('img', {
95106
className: props.className ,
96107
src: src ,
97-
onError: handleLoadError , __self: this, __source: {fileName: _jsxFileName, lineNumber: 94}}
108+
onError: handleLoadError , __self: this, __source: {fileName: _jsxFileName, lineNumber: 105}}
98109
)
99110
)
100111
};

dist/umd/index.evm.js

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
const _jsxFileName = "/Users/sebastian/Work/DePay/react-token-image/src/index.evm.js";
1616
const tokenURIAPI = [{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}];
17+
const uriAPI = [{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}];
1718
const UNKNOWN_IMAGE = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI4My41IDI4My41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxjaXJjbGUgZmlsbD0iI0YwRUZFRiIgY3g9IjE0MS43IiBjeT0iMTQxLjciIHI9IjE0MS43Ii8+CjxnPgoJPHBhdGggZmlsbD0iI0FCQUJBQiIgZD0iTTEyNywxNzUuMXYtNC40YzAtOC40LDEuMS0xNS4zLDMuNC0yMC43YzIuMy01LjQsNS4xLTEwLDguNC0xMy44YzMuMy0zLjcsNi42LTcsMTAuMS05LjdzNi4zLTUuNiw4LjYtOC41CgkJYzIuMy0yLjksMy40LTYuNCwzLjQtMTAuNWMwLTUtMS4xLTguNy0zLjMtMTEuMWMtMi4yLTIuNC01LTQtOC40LTQuOGMtMy40LTAuOC02LjktMS4zLTEwLjUtMS4zYy01LjgsMC0xMS44LDEtMTcuOSwyLjkKCQljLTYuMSwxLjktMTEuNSw0LjctMTYsOC40Vjc0YzIuMy0xLjcsNS40LTMuMyw5LjQtNC45YzQtMS42LDguNC0yLjksMTMuNC00YzUtMS4xLDEwLjEtMS42LDE1LjUtMS42YzguMSwwLDE1LjEsMS4xLDIxLjEsMy40CgkJYzYsMi4zLDEwLjgsNS41LDE0LjcsOS41YzMuOCw0LDYuNyw4LjcsOC42LDE0LjFjMS45LDUuMywyLjksMTEuMSwyLjksMTcuMmMwLDYuNi0xLjEsMTItMy40LDE2LjNjLTIuMyw0LjMtNS4xLDgtOC41LDExLjIKCQljLTMuNCwzLjItNi44LDYuNC0xMC4yLDkuNWMtMy40LDMuMS02LjMsNi44LTguNiwxMWMtMi4zLDQuMi0zLjQsOS41LTMuNCwxNS45djMuNEgxMjd6IE0xMjUuMiwyMTguMnYtMjcuN2gzM3YyNy43SDEyNS4yeiIvPgo8L2c+Cjwvc3ZnPgo=';
1819

1920
let TokenImage = function(props){
@@ -23,6 +24,7 @@
2324

2425
const blockchain = props.blockchain.toLowerCase();
2526
const address = props.address;
27+
const id = props.id;
2628

2729
React.useEffect(()=>{
2830
if(web3Constants.CONSTANTS[blockchain].NATIVE.toLowerCase() == address.toLowerCase()) {
@@ -60,34 +62,43 @@
6062
setSrc(UNKNOWN_IMAGE);
6163
};
6264

65+
const uriToImage = (tokenURI)=>{
66+
if(tokenURI.match(/^ipfs/)) {
67+
tokenURI = `https://ipfs.io/ipfs/${tokenURI.split('://')[1]}`;
68+
}
69+
fetch(tokenURI).then((response) => {
70+
if (response.ok) { return response.json() }
71+
setUnknown();
72+
})
73+
.then((responseJson) => {
74+
if(responseJson) {
75+
let image = responseJson.image;
76+
if(image){
77+
if(image.match(/^ipfs/)) {
78+
image = `https://ipfs.io/ipfs/${image.split('://')[1]}`;
79+
}
80+
setSource('meta');
81+
setSrc(image);
82+
} else {
83+
setUnknown();
84+
}
85+
}
86+
}).catch(setUnknown);
87+
};
88+
6389
const handleLoadError = (error)=> {
6490
if(source == 'repository') {
6591
setSource('depay');
6692
setSrc(`https://integrate.depay.com/tokens/${blockchain}/${address}/image`);
6793
} else if (source == 'depay' && supported.evm.includes(blockchain)) {
68-
web3ClientEvm.request({ blockchain, address, api: tokenURIAPI, method: 'tokenURI', params: [1] }).then(async(tokenURI)=>{
69-
if(tokenURI.match(/^ipfs/)) {
70-
tokenURI = `https://ipfs.io/ipfs/${tokenURI.split('://')[1]}`;
71-
}
72-
fetch(tokenURI).then((response) => {
73-
if (response.ok) { return response.json() }
74-
setUnknown();
75-
})
76-
.then((responseJson) => {
77-
if(responseJson) {
78-
let image = responseJson.image;
79-
if(image){
80-
if(image.match(/^ipfs/)) {
81-
image = `https://ipfs.io/ipfs/${image.split('://')[1]}`;
82-
}
83-
setSource('meta');
84-
setSrc(image);
85-
} else {
86-
setUnknown();
87-
}
88-
}
94+
if(id) {
95+
web3ClientEvm.request({ blockchain, address, api: uriAPI, method: 'uri', params: [id] }).then((uri)=>{
96+
uri = uri.match('0x{id}') ? uri.replace('0x{id}', id) : uri;
97+
uriToImage(uri);
8998
}).catch(setUnknown);
90-
}).catch(setUnknown);
99+
} else {
100+
web3ClientEvm.request({ blockchain, address, api: tokenURIAPI, method: 'tokenURI', params: [1] }).then(uriToImage).catch(setUnknown);
101+
}
91102
} else {
92103
setUnknown();
93104
}
@@ -99,7 +110,7 @@
99110
React__default['default'].createElement('img', {
100111
className: props.className ,
101112
src: src ,
102-
onError: handleLoadError , __self: this, __source: {fileName: _jsxFileName, lineNumber: 94}}
113+
onError: handleLoadError , __self: this, __source: {fileName: _jsxFileName, lineNumber: 105}}
103114
)
104115
)
105116
};

package.evm.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@depay/react-token-image-evm",
33
"moduleName": "ReactTokenImage",
4-
"version": "4.6.0",
4+
"version": "4.6.1",
55
"description": "React component to display token images with fallbacks and unknown state.",
66
"main": "./dist/umd/index.evm.js",
77
"module": "./dist/esm/index.evm.js",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@depay/react-token-image",
33
"moduleName": "ReactTokenImage",
4-
"version": "4.6.0",
4+
"version": "4.6.1",
55
"description": "React component to display token images with fallbacks and unknown state.",
66
"main": "./dist/umd/index.js",
77
"module": "./dist/esm/index.js",

src/index.evm.js

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { request } from '@depay/web3-client-evm'
55
import { supported } from './blockchains.evm'
66

77
const tokenURIAPI = [{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
8+
const uriAPI = [{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
89
const UNKNOWN_IMAGE = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjgzLjUgMjgzLjUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI4My41IDI4My41OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxjaXJjbGUgZmlsbD0iI0YwRUZFRiIgY3g9IjE0MS43IiBjeT0iMTQxLjciIHI9IjE0MS43Ii8+CjxnPgoJPHBhdGggZmlsbD0iI0FCQUJBQiIgZD0iTTEyNywxNzUuMXYtNC40YzAtOC40LDEuMS0xNS4zLDMuNC0yMC43YzIuMy01LjQsNS4xLTEwLDguNC0xMy44YzMuMy0zLjcsNi42LTcsMTAuMS05LjdzNi4zLTUuNiw4LjYtOC41CgkJYzIuMy0yLjksMy40LTYuNCwzLjQtMTAuNWMwLTUtMS4xLTguNy0zLjMtMTEuMWMtMi4yLTIuNC01LTQtOC40LTQuOGMtMy40LTAuOC02LjktMS4zLTEwLjUtMS4zYy01LjgsMC0xMS44LDEtMTcuOSwyLjkKCQljLTYuMSwxLjktMTEuNSw0LjctMTYsOC40Vjc0YzIuMy0xLjcsNS40LTMuMyw5LjQtNC45YzQtMS42LDguNC0yLjksMTMuNC00YzUtMS4xLDEwLjEtMS42LDE1LjUtMS42YzguMSwwLDE1LjEsMS4xLDIxLjEsMy40CgkJYzYsMi4zLDEwLjgsNS41LDE0LjcsOS41YzMuOCw0LDYuNyw4LjcsOC42LDE0LjFjMS45LDUuMywyLjksMTEuMSwyLjksMTcuMmMwLDYuNi0xLjEsMTItMy40LDE2LjNjLTIuMyw0LjMtNS4xLDgtOC41LDExLjIKCQljLTMuNCwzLjItNi44LDYuNC0xMC4yLDkuNWMtMy40LDMuMS02LjMsNi44LTguNiwxMWMtMi4zLDQuMi0zLjQsOS41LTMuNCwxNS45djMuNEgxMjd6IE0xMjUuMiwyMTguMnYtMjcuN2gzM3YyNy43SDEyNS4yeiIvPgo8L2c+Cjwvc3ZnPgo='
910

1011
let TokenImage = function(props){
@@ -14,6 +15,7 @@ let TokenImage = function(props){
1415

1516
const blockchain = props.blockchain.toLowerCase()
1617
const address = props.address
18+
const id = props.id
1719

1820
useEffect(()=>{
1921
if(CONSTANTS[blockchain].NATIVE.toLowerCase() == address.toLowerCase()) {
@@ -55,34 +57,43 @@ let TokenImage = function(props){
5557
setSrc(UNKNOWN_IMAGE)
5658
}
5759

60+
const uriToImage = (tokenURI)=>{
61+
if(tokenURI.match(/^ipfs/)) {
62+
tokenURI = `https://ipfs.io/ipfs/${tokenURI.split('://')[1]}`
63+
}
64+
fetch(tokenURI).then((response) => {
65+
if (response.ok) { return response.json() }
66+
setUnknown()
67+
})
68+
.then((responseJson) => {
69+
if(responseJson) {
70+
let image = responseJson.image
71+
if(image){
72+
if(image.match(/^ipfs/)) {
73+
image = `https://ipfs.io/ipfs/${image.split('://')[1]}`
74+
}
75+
setSource('meta')
76+
setSrc(image)
77+
} else {
78+
setUnknown()
79+
}
80+
}
81+
}).catch(setUnknown)
82+
}
83+
5884
const handleLoadError = (error)=> {
5985
if(source == 'repository') {
6086
setSource('depay')
6187
setSrc(`https://integrate.depay.com/tokens/${blockchain}/${address}/image`)
6288
} else if (source == 'depay' && supported.evm.includes(blockchain)) {
63-
request({ blockchain, address, api: tokenURIAPI, method: 'tokenURI', params: [1] }).then(async(tokenURI)=>{
64-
if(tokenURI.match(/^ipfs/)) {
65-
tokenURI = `https://ipfs.io/ipfs/${tokenURI.split('://')[1]}`
66-
}
67-
fetch(tokenURI).then((response) => {
68-
if (response.ok) { return response.json() }
69-
setUnknown()
70-
})
71-
.then((responseJson) => {
72-
if(responseJson) {
73-
let image = responseJson.image
74-
if(image){
75-
if(image.match(/^ipfs/)) {
76-
image = `https://ipfs.io/ipfs/${image.split('://')[1]}`
77-
}
78-
setSource('meta')
79-
setSrc(image)
80-
} else {
81-
setUnknown()
82-
}
83-
}
89+
if(id) {
90+
request({ blockchain, address, api: uriAPI, method: 'uri', params: [id] }).then((uri)=>{
91+
uri = uri.match('0x{id}') ? uri.replace('0x{id}', id) : uri
92+
uriToImage(uri)
8493
}).catch(setUnknown)
85-
}).catch(setUnknown)
94+
} else {
95+
request({ blockchain, address, api: tokenURIAPI, method: 'tokenURI', params: [1] }).then(uriToImage).catch(setUnknown)
96+
}
8697
} else {
8798
setUnknown()
8899
}

0 commit comments

Comments
 (0)