Skip to content

Commit 4170f65

Browse files
authored
Merge a1e46e7 into 80d393f
2 parents 80d393f + a1e46e7 commit 4170f65

16 files changed

+697
-615
lines changed

Diff for: common/config/rush/npm-shrinkwrap.json

+654-593
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-ethereum-asset-ledger.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-ethereum-gateway.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-ethereum-http-provider.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-ethereum-metamask-provider.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-ethereum-value-ledger.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-ethereum.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-wanchain-asset-ledger.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-wanchain-gateway.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-wanchain-http-provider.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-wanchain-value-ledger.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dist/0xcert-wanchain.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: packages/0xcert-ethereum-xcert-contracts/src/contracts/ierc-2477.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pragma solidity 0.8.6;
44
/**
55
* @title ERC-2477 Non-Fungible Token Metadata Integrity Standard
66
* @dev See https://eips.ethereum.org/EIPS/eip-2477
7-
* @dev The ERC-165 identifier for this interface is 0x#######. //TODO: FIX THIS
7+
* @dev The ERC-165 identifier for this interface is 0x832a7e0e
88
*/
99
interface ERC2477 /* is ERC165 */ {
1010
/**

Diff for: packages/0xcert-ethereum-xcert-contracts/src/contracts/utils/selector.sol

+17-10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
pragma solidity 0.8.6;
44

5+
import "../ierc-2477.sol";
56
import "../ixcert.sol";
67
import "../ixcert-burnable.sol";
78
import "../ixcert-mutable.sol";
@@ -16,6 +17,17 @@ import "../ixcert-revokable.sol";
1617
contract Selector
1718
{
1819

20+
/**
21+
* @dev Calculates and returns interface ID for the erc2477 smart contract.
22+
*/
23+
function calculateERC2477Selector()
24+
external
25+
pure
26+
returns (bytes4)
27+
{
28+
return type(ERC2477).interfaceId;
29+
}
30+
1931
/**
2032
* @dev Calculates and returns interface ID for the Xcert smart contract.
2133
*/
@@ -24,8 +36,7 @@ contract Selector
2436
pure
2537
returns (bytes4)
2638
{
27-
Xcert i;
28-
return (i.create.selector ^ i.setUri.selector);
39+
return type(Xcert).interfaceId;
2940
}
3041

3142
/**
@@ -36,8 +47,7 @@ contract Selector
3647
pure
3748
returns (bytes4)
3849
{
39-
XcertBurnable i;
40-
return i.destroy.selector;
50+
return type(XcertBurnable).interfaceId;
4151
}
4252

4353
/**
@@ -48,8 +58,7 @@ contract Selector
4858
pure
4959
returns (bytes4)
5060
{
51-
XcertRevokable i;
52-
return i.revoke.selector;
61+
return type(XcertRevokable).interfaceId;
5362
}
5463

5564
/**
@@ -60,8 +69,7 @@ contract Selector
6069
pure
6170
returns (bytes4)
6271
{
63-
XcertMutable i;
64-
return i.updateTokenURIIntegrityDigest.selector;
72+
return type(XcertMutable).interfaceId;
6573
}
6674

6775
/**
@@ -72,8 +80,7 @@ contract Selector
7280
pure
7381
returns (bytes4)
7482
{
75-
XcertPausable i;
76-
return i.setPause.selector;
83+
return type(XcertPausable).interfaceId;
7784
}
7885

7986
}

Diff for: packages/0xcert-ethereum-xcert-contracts/src/contracts/xcert.sol

+1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ contract XcertToken is
156156
constructor()
157157
{
158158
supportedInterfaces[0x39541724] = true; // Xcert
159+
supportedInterfaces[0x832a7e0e] = true; // ERC2477
159160
}
160161

161162
/**

Diff for: packages/0xcert-ethereum-xcert-contracts/src/tests/utils/selector.test.ts

+13
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,19 @@ spec.beforeEach(async (ctx) => {
2020
ctx.set('selector', selector);
2121
});
2222

23+
spec.test('checks erc2477 selector', async (ctx) => {
24+
const selector = ctx.get('selector');
25+
const xcert = await ctx.deploy({
26+
src: './build/xcert-mock.json',
27+
contract: 'XcertMock',
28+
args: ['Foo', 'F', 'https://0xcert.org/', '.json', '0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658', []],
29+
});
30+
31+
const bytes = await selector.instance.methods.calculateERC2477Selector().call();
32+
const supports = await xcert.instance.methods.supportsInterface(bytes).call();
33+
ctx.is(supports, true);
34+
});
35+
2336
spec.test('checks Xcert selector', async (ctx) => {
2437
const selector = ctx.get('selector');
2538
const xcert = await ctx.deploy({

0 commit comments

Comments
 (0)