Initial commit

This commit is contained in:
Yaser
2026-08-13 19:50:53 +03:30
commit 38084458fe
879 changed files with 95198 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
class AddEncryptedSecretToPaymentAddress < ActiveRecord::Migration[5.2]
def up
secrets = PaymentAddress.pluck(:id, :secret)
details = PaymentAddress.pluck(:id, :details)
settings = Wallet.pluck(:id, :settings)
remove_column :payment_addresses, :secret
add_column :payment_addresses, :secret_encrypted , :string, limit: 255, after: :address
remove_column :payment_addresses, :details
add_column :payment_addresses, :details_encrypted , :string, limit: 1024, after: :secret_encrypted
remove_column :wallets, :settings
add_column :wallets, :settings_encrypted , :string, limit: 1024, after: :gateway
secrets.each do |s|
atr = PaymentAddress.__vault_attributes[:secret]
enc = Vault::Rails.encrypt(atr[:path], atr[:key], s[1])
execute "UPDATE payment_addresses SET #{atr[:encrypted_column]} = '#{enc}' WHERE id = #{s[0]}"
end
details.each do |d|
atr = PaymentAddress.__vault_attributes[:details]
enc = Vault::Rails.encrypt(atr[:path], atr[:key], d[1])
execute "UPDATE payment_addresses SET #{atr[:encrypted_column]} = '#{enc}' WHERE id = #{d[0]}"
end
settings.each do |s|
atr = Wallet.__vault_attributes[:settings]
enc = Vault::Rails.encrypt(atr[:path], atr[:key], s[1])
execute "UPDATE wallets SET #{atr[:encrypted_column]} = '#{enc}' WHERE id = #{s[0]}"
end
end
def down
secrets = PaymentAddress.pluck(:id, :secret_encrypted)
details = PaymentAddress.pluck(:id, :details_encrypted)
settings = Wallet.pluck(:id, :settings_encrypted)
add_column :payment_addresses, :secret, :string, limit: 128, after: :address
remove_column :payment_addresses, :secret_encrypted , :string, after: :address
add_column :payment_addresses, :details, :string, limit: 1.kilobyte, null: false, default: '{}', after: :secret
remove_column :payment_addresses, :details_encrypted , :string, limit: 1024, after: :secret_encrypted
add_column :wallets, :settings, :string, limit: 1000, default: '{}', null: false, after: :gateway
remove_column :wallets, :settings_encrypted , :string, limit: 1024, after: :gateway
secrets.each do |s|
atr = PaymentAddress.__vault_attributes[:secret]
dec = Vault::Rails.decrypt(atr[:path], atr[:key], s[1])
execute "UPDATE payment_addresses SET secret = '#{dec}' WHERE id = #{s[0]}"
end
details.each do |d|
atr = PaymentAddress.__vault_attributes[:details]
dec = Vault::Rails.decrypt(atr[:path], atr[:key], d[1])
execute "UPDATE payment_addresses SET details = '#{dec}' WHERE id = #{d[0]}"
end
settings.each do |s|
atr = Wallet.__vault_attributes[:settings]
dec = Vault::Rails.decrypt(atr[:path], atr[:key], s[1])
execute "UPDATE wallets SET settings = '#{dec}' WHERE id = #{s[0]}"
end
end
end