You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
648 B
31 lines
648 B
2 years ago
|
function toBytes32 (type, value) {
|
||
|
switch (type) {
|
||
|
case 'bytes32':
|
||
|
return value;
|
||
|
case 'uint256':
|
||
|
return `bytes32(${value})`;
|
||
|
case 'address':
|
||
|
return `bytes32(uint256(uint160(${value})))`;
|
||
|
default:
|
||
|
throw new Error(`Conversion from ${type} to bytes32 not supported`);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fromBytes32 (type, value) {
|
||
|
switch (type) {
|
||
|
case 'bytes32':
|
||
|
return value;
|
||
|
case 'uint256':
|
||
|
return `uint256(${value})`;
|
||
|
case 'address':
|
||
|
return `address(uint160(uint256(${value})))`;
|
||
|
default:
|
||
|
throw new Error(`Conversion from bytes32 to ${type} not supported`);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = {
|
||
|
toBytes32,
|
||
|
fromBytes32,
|
||
|
};
|