Skip to content

Instantly share code, notes, and snippets.

@corbifex
corbifex / request.ts
Created August 2, 2020 11:56
Get available payment units
// slotTypes = [minutes, hours, days, months] in seconds
export const getPastSlots = (
start,
now,
type,
length,
unit
) => {
const slot = slotTypes[type] * length;
return Math.floor((now - start) / slot) - unit;
@corbifex
corbifex / AddMemberProposal.ts
Created July 22, 2020 10:48
Add Member proposal custom apply phase
public async applyProposalAsset(store: StateStore): Promise<ApplyProposal> {
const errors: TransactionError[] = [];
const proposal = await store.account.getOrDefault(this.getProposalAddress()) as ProposalAccount;
const addressBook = await store.account.getOrDefault(getAddressFromPublicKey(this.asset.addressBook)) as AddressBookAccount;
const proposedMember = await store.account.getOrDefault(getAddressFromPublicKey(this.asset.options.member)) as Account;
if (!this.asset.options.member) {
errors.push(
new TransactionError(
'`.asset.options.member` should contain the proposal.',
@corbifex
corbifex / BaseProposal.ts
Last active July 22, 2020 10:46
Base Proposal transaction LCU Dao
const {proposal, errors} = await this.applyProposalAsset(store);
errors.map(err => {
errs.push(err);
});
proposal.publicKey = this.getProposalPublicKey();
proposal.asset = {
...proposal.asset,
options: proposal.asset.options || {},
const {
BaseTransaction,
TransactionError,
utils
} = require('@liskhq/lisk-transactions');
class MultiRecipient extends BaseTransaction {
static get TYPE() {
return 20;
const {
BaseTransaction,
TransactionError,
utils
} = require('@liskhq/lisk-transactions');
class MultiRecipient extends BaseTransaction {
static get TYPE() {
return 20;