Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function hash256b(input: string | Buffer | Uint8Array): Buffer {
const k = new Keccak(256);
// @ts-ignore
k.update(Buffer.from(input));
return k.digest();
}
payload.setFee(0);
const code = Buffer.from(data, 'hex');
// if we are deploying and it looks like wasm, it must be wasm. Note that
// evm opcode 0 is stop, so this would not make any sense.
const wasm_magic = Buffer.from('\0asm');
if (!address && !Buffer.compare(code.slice(0, 4), wasm_magic)) {
payload.setWasm(code);
} else {
payload.setData(code);
}
// If address is null then we are creating a new contract, if we have the deployedBytecode then send it with the ABI
if (!address && contract.code.deployedBytecode) {
const meta = new ContractMeta()
// TODO: document/formalise the expected structure of the contract metadata
meta.setMeta(JSON.stringify({ Abi: contract.abi }))
const codeHash = (new Keccak(256)).update(contract.code.deployedBytecode, "hex").digest()
meta.setCodehash(codeHash)
payload.setContractmetaList([meta])
}
return payload
}
function hash256b(input) {
const k = new _sha.Keccak(256); // @ts-ignore
k.update(Buffer.from(input));
return k.digest();
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jcnlwdG8vaGFzaC50cyJdLCJuYW1lcyI6WyJoYXNoMTYwYiIsImlucHV0IiwiZGlnZXN0IiwiaGFzaDI1NmIiLCJzbGljZSIsImsiLCJLZWNjYWsiLCJ1cGRhdGUiLCJCdWZmZXIiLCJmcm9tIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBOztBQURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFFBQVQsQ0FBa0JDLEtBQWxCLEVBQStEO0FBQ3BFLFFBQU1DLE1BQU0sR0FBR0MsUUFBUSxDQUFDRixLQUFELENBQXZCO0FBQ0EsU0FBT0MsTUFBTSxDQUFDRSxLQUFQLENBQWEsRUFBYixDQUFQO0FBQ0Q7O0FBRU0sU0FBU0QsUUFBVCxDQUFrQkYsS0FBbEIsRUFBK0Q7QUFDcEUsUUFBTUksQ0FBQyxHQUFHLElBQUlDLFdBQUosQ0FBVyxHQUFYLENBQVYsQ0FEb0UsQ0FFcEU7O0FBQ0FELEVBQUFBLENBQUMsQ0FBQ0UsTUFBRixDQUFTQyxNQUFNLENBQUNDLElBQVAsQ0FBWVIsS0FBWixDQUFUO0FBQ0EsU0FBT0ksQ0FBQyxDQUFDSCxNQUFGLEVBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEtlY2NhayB9IGZyb20gXCJzaGEzXCI7XG5cbi8vIENvbXB1dGVzIHRoZSBCTEFLRTJCIGhhc2ggb2YgYSBzdHJpbmcgb3IgYnl0ZSBhcnJheSwgYW5kIHJldHVybnMgYSBVaW50OEFycmF5XG4vL1xuLy8gUmV0dXJucyBhIG4tYnl0ZSBVaW50OEFycmF5XG4vL1xuLy8gUGFyYW1ldGVyczpcbi8vIC0gaW5wdXQgLSB0aGUgaW5wdXQgYnl0ZXMsIGFzIGEgc3RyaW5nLCBCdWZmZXIgb3IgVWludDhBcnJheVxuLy8gLSBrZXkgLSBvcHRpb25hbCBrZXkgVWludDhBcnJheSwgdXAgdG8gNjQgYnl0ZXNcbi8vIC0gb3V0bGVuIC0gb3B0aW9uYWwgb3V0cHV0IGxlbmd0aCBpbiBieXRlcywgZGVmYXVsdCA2NFxuZXhwb3J0IGZ1bmN0aW9uIGhhc2gxNjBiKGlucHV0OiBzdHJpbmcgfCBCdWZmZXIgfCBVaW50OEFycmF5KTogQnVmZmVyIHtcbiAgY29uc3QgZGlnZXN0ID0gaGFzaDI1NmIoaW5wdXQpO1xuICByZXR1cm4gZGlnZXN0LnNsaWNlKDEyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc2gyNTZiKGlucHV0OiBzdHJpbmcgfCBCdWZmZXIgfCBVaW50OEFycmF5KTogQnVmZmVyIHtcbiAgY29uc3QgayA9IG5ldyBLZWNjYWsoMjU2KTtcbiAgLy8gQHRzLWlnbm9yZVxuICBrLnVwZGF0ZShCdWZmZXIuZnJvbShpbnB1dCkpO1xuICByZXR1cm4gay5kaWdlc3QoKTtcbn1cbiJdfQ==
public DeriveSecretKey(i: number): SecertKeyEx {
// newKeyRndSeed = Keccak512(chainCode, i, rndSeed).substring(0,96)
const hash = new Keccak(384); // Keccak 384 has size is 48 bytes
hash.update(this.chainCode);
hash.update(i.toString());
hash.update(this.rndSeed);
return new SecertKeyEx(hash.digest('hex') + this.chainCode);
}
}
export function sha3(str: string): string {
const hash = new Keccak(256).update(str);
return hash.digest('hex').toUpperCase();
}
export function getContractMetaFromBytecode(abi: ABI, deployedBytecode: string): ContractMeta {
const hasher = new Keccak(256);
const codeHash = hasher.update(deployedBytecode, 'hex').digest();
return getContractMeta(abi, codeHash);
}
function sha3(str: string) {
return new Keccak(256).update(str).digest('hex').toUpperCase();
}