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 getActionProxy(gateway: Gateway, action: ActionsOrderAction) {
if (action.kind == ActionsOrderActionKind.TRANSFER_VALUE) {
return ProxyId.TOKEN_TRANSFER;
} else if (action.kind == ActionsOrderActionKind.TRANSFER_ASSET) {
return gateway.provider.unsafeRecipientIds.indexOf(action.ledgerId) === -1
? ProxyId.NFTOKEN_SAFE_TRANSFER
: ProxyId.NFTOKEN_TRANSFER;
} else if (action.kind == ActionsOrderActionKind.CREATE_ASSET) {
return ProxyId.XCERT_CREATE;
} else if (action.kind == ActionsOrderActionKind.SET_ABILITIES) {
return ProxyId.MANAGE_ABILITIES;
} else if (action.kind == ActionsOrderActionKind.UPDATE_ASSET_IMPRINT) {
return ProxyId.XCERT_UPDATE;
} else if (action.kind == ActionsOrderActionKind.DESTROY_ASSET) {
return ProxyId.XCERT_BURN;
} else {
throw new ProviderError(ProviderIssue.WRONG_INPUT, 'Not implemented.');
}
}
if (action.kind == ActionsOrderActionKind.CREATE_ASSET) {
params = rightPad(`0x${action['assetImprint']}`, 64);
params += leftPad(bigNumberify(action['assetId']).toHexString(), 64, '0', false);
params += action['receiverId'].substr(2);
params += leftPad(bigNumberify(signerIndex).toHexString(), 2, '0', false);
} else if (action.kind == ActionsOrderActionKind.SET_ABILITIES) {
const bitAbilities = getBitfieldFromAbilities(action.abilities);
params = leftPad(bitAbilities, 64, '0', true);
params += action['receiverId'].substr(2);
params += leftPad(bigNumberify(signerIndex).toHexString(), 2, '0', false);
} else if (action.kind == ActionsOrderActionKind.TRANSFER_ASSET) {
params = leftPad(bigNumberify(action['assetId']).toHexString(), 64, '0', true);
params += action['receiverId'].substr(2);
params += leftPad(bigNumberify(signerIndex).toHexString(), 2, '0', false);
} else if (action.kind == ActionsOrderActionKind.TRANSFER_VALUE) {
params = leftPad(bigNumberify(action['value']).toHexString(), 64, '0', true);
params += action['receiverId'].substr(2);
params += leftPad(bigNumberify(signerIndex).toHexString(), 2, '0', false);
} else if (action.kind == ActionsOrderActionKind.UPDATE_ASSET_IMPRINT) {
params = rightPad(`0x${action['assetImprint']}`, 64);
params += leftPad(bigNumberify(action['assetId']).toHexString(), 64, '0', false);
params += leftPad(bigNumberify(signerIndex).toHexString(), 2, '0', false);
} else if (action.kind == ActionsOrderActionKind.DESTROY_ASSET) {
params = leftPad(bigNumberify(action['assetId']).toHexString(), 64, '0', true);
params += leftPad(bigNumberify(signerIndex).toHexString(), 2, '0', false);
}
return params;
}