mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
import { CommunityDraft } from '@/graphql/input/CommunityDraft'
|
|
import { TransactionRecipeRole } from './TransactionRecipe.role'
|
|
import { Community } from '@entity/Community'
|
|
import { TransactionBodyBuilder } from '@/data/proto/TransactionBody.builder'
|
|
import { KeyPair } from '@/data/KeyPair'
|
|
import { sign } from '@/utils/cryptoHelper'
|
|
|
|
export class CommunityRootTransactionRole extends TransactionRecipeRole {
|
|
public createFromCommunityDraft(
|
|
communityDraft: CommunityDraft,
|
|
community: Community,
|
|
): CommunityRootTransactionRole {
|
|
// create proto transaction body
|
|
const transactionBody = new TransactionBodyBuilder()
|
|
.fromCommunityDraft(communityDraft, community)
|
|
.build()
|
|
// build transaction entity
|
|
this.transactionBuilder.fromTransactionBody(transactionBody).setSenderCommunity(community)
|
|
const transaction = this.transactionBuilder.getTransaction()
|
|
// sign
|
|
this.transactionBuilder.setSignature(sign(transaction.bodyBytes, new KeyPair(community)))
|
|
return this
|
|
}
|
|
}
|